Win32 控制台禁用系统菜单按钮

2024-05-06

我想禁用/灰色控制台窗口上的系统菜单按钮,特别是最小化按钮。我已经尝试过上面提到的功能另一个线程 https://stackoverflow.com/questions/15834818/c-prevent-the-console-window-from-closing-when-red-x-is-clicked,但即使使用它们后,控制台窗口仍然没有最小化按钮变灰。我还研究了 DeleteMenu() 函数,但它似乎没有使按钮变灰的选项。

这是测试代码:

#include <Windows.h>
using namespace std;


int main()
{
    //SetConsoleTitle(L"CPU Information");

    HWND consoleWindow = GetConsoleWindow();
    HMENU hMenu = GetSystemMenu(consoleWindow, FALSE);

    EnableMenuItem(hMenu, SC_MINIMIZE, MF_BYCOMMAND | MF_GRAYED);
    DrawMenuBar(consoleWindow);
    return 0;
}

GetWindowLong + SetWindowLong FTW!

int main(int argc, _TCHAR* argv[])
{
    HWND consoleWindow  = GetConsoleWindow();
    LONG style = GetWindowLong(consoleWindow , GWL_STYLE);
    style = style & ~(WS_MINIMIZEBOX);
    SetWindowLong(consoleWindow, GWL_STYLE, style);

    return 0;
}

这将使窗口右上角的最小化框以及系统菜单中的“最小化”选项变灰并禁用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Win32 控制台禁用系统菜单按钮 的相关文章

随机推荐

  • PHP 中的 MPTT(修改的先序树遍历)问题

    我的第一篇文章在这里 看来这是一个变得明智的地方 我目前正在进行一些测试 第一次尝试使用 MPTT 修改的预序树遍历 方法在 PHP 的帮助下将数据存储在 Mysql 数据库中 但是 我试图找到最注重性能的方法来获取特定级别上的所有列表元素
  • 从 Vowpal Wabbit 的内存中读取数据?

    有没有办法发送数据来训练 Vowpal Wabbit 中的模型而不将其写入磁盘 这就是我正在尝试做的事情 我有一个相对较大的 csv 数据集 大约 2gb 可以毫无问题地容纳在内存中 我将它在 R 中加载到数据框中 并且有一个函数将该数据框
  • 如何在 C# 中创建可以转换为 DateTime 的类?

    我怎样才能制作可以转换为 DateTime 的类 但我需要在班级拥挤的时候进行选角 例如 object date1 new MyDateTime DateTime date2 DateTime date1 我直接需要这个工作示例 我知道怎么
  • SWRevealViewController 在滑动时关闭键盘

    我在用SWRevealViewController https github com John Lluch SWRevealViewController在我的应用程序中 我遇到了问题 我在场景中有一个文本字段 如果我在键盘打开时向左滑动 则
  • 如何判断谁登录了 SQL Server

    我正在设计一个应用程序 我正在寻找最好的方法来告诉谁当前登录到 SQL Server 我将使用 SSMS 内置的活动监视器 它显示访问服务器的所有进程的列表 非常酷 但是 如果在我的 NET 代码中 每次访问数据库时它都使用单独的连接 那么
  • 使用文本文件中的 var

    我的问题是 我想使用由从文本文件中在 carac 中接收的关键字启动的函数 并在该函数中使用 carac 之后的字符串 该函数位于包含的其他文件中 但我不知道该怎么做 for std string carac fichier gt gt c
  • 在组件上画线

    我有一个包含 2 列的表 在其中一列中我有一个由我创建的组件 我想在此表中画一条线放在前面 但是当我尝试使用我发布的代码时 该线位于我创建的其他组件后面 public void CoTableLayoutPanel2 Paint objec
  • 捆绑我的 aurelia 应用程序后,我收到:No PLATFORM.Loader 错误

    将简单的 aurelia 应用程序捆绑后jspm bundle sfx我收到以下错误 No PLATFORM Loader is defined and there is neither a System API ES6 or a Requ
  • 使用 spring-kafka 2.1.0 和 SpringBoot 1.5.9 的 Kafka Consumer 上的 java.lang.NoSuchMethodError

    我正在尝试使用 SpringBoot 1 5 9 和 Spring kafka 2 1 0 设置 Kafka Consumer 然而 当我启动我的应用程序时 我在 Kafka MessagingMessageListenerAdapter
  • WPF:如何以不同的方向书写文本?

    我需要按照下图指定的方向写入文本 事实上 我在这里看到了一些使用文本块并使用 RenderTransform 旋转控件角度的示例 但这不是我真正需要的 我尝试使用图像来做到这一点 但它不太适合 所以我真的不知道如何解决它 如果您查看旁边的图
  • 我可以使用 vh 和 vw 指定画布尺寸吗?

    我的代码是 var canvas document getElementById canvas ctx canvas getContext 2d ctx canvas width 40vw ctx canvas height 40vh 但它
  • Azure SQL 数据库流量迁移到较新的网关

    收到来自 azure 的关于 Azure SQL 数据库流量迁移到较新网关的电子邮件 电子邮件中有几个链接 包括Azure SQL 数据库流量迁移到较新的网关 https learn microsoft com en us azure sq
  • 如何将年、月、日、小时/分钟列转换为单个日期时间列?

    我有以下数据格式 其中包含年 月 日和小时分钟的不同列 前两位数字是小时 最后两位数字是分钟 如何通过组合所有这些现有列来创建日期时间格式的新列 YEAR MONTH DAY HOUR MINUTE 2015 1 15 0010 2015
  • 如何使用 Sound Cloud API 按标签搜索特定用户的曲目?

    我想通过仅与我的用户名 即皇家歌剧院 相关的标签搜索曲目 例如 http api soundcloud com users royaloperahouse tracks client id 238947HSGDHSDG tags eric
  • 为什么构造函数参数要成为案例类的成员?

    class MyClass name String val x new MyClass x println x name Error name is not a member of MyClass but abstract class Ba
  • 如何选择部分密集数据集的均匀分布子集?

    P是一个 n d 矩阵 持有nd 维样本 P某些地区的密度是其他地区的几倍 我想选择一个子集P其中任意样本对之间的距离大于d0 并且我需要将其传播到整个区域 所有样本都具有相同的优先级 无需优化任何内容 例如覆盖面积或成对距离之和 这是执行
  • Bootstrap 4 navbar-inverse 没有颜色

    最近我决定尝试新的引导程序版本 4 我对文件做了所有正确的事情 下面是我的html
  • 更改 urllib2.urlopen 上的用户代理

    如何使用非默认用户代理下载网页urllib2 urlopen urllib2 urlopen is not available in Python 3 x q 2792650 the 3 x equivalent is urllib req
  • 在 firebase 中存储空数组

    我的 firebase 应用程序与 React 一起使用 我可以注册用户 然后将信息记录到数据库中 我正在创建一个 约会应用程序 我想要某种方法来存储空数组 例如 matchers etc 我尝试过这样的事情 firebase databa
  • Win32 控制台禁用系统菜单按钮

    我想禁用 灰色控制台窗口上的系统菜单按钮 特别是最小化按钮 我已经尝试过上面提到的功能另一个线程 https stackoverflow com questions 15834818 c prevent the console window