我想禁用/灰色控制台窗口上的系统菜单按钮,特别是最小化按钮。我已经尝试过上面提到的功能另一个线程 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(使用前将#替换为@)