为什么只有[☓]按钮显示为灰色,但[☐]和[ - ]不是?

时间:2013-11-17 11:26:01

标签: c winapi button

这是我的C代码:

#define WINVER 0x0500
#include<windows.h>
HWND ConsoleWindow = GetConsoleWindow();
HMENU SystemMenu = GetSystemMenu(ConsoleWindow, FALSE);
DeleteMenu(SystemMenu, SC_CLOSE, MF_BYCOMMAND);
DeleteMenu(SystemMenu, SC_MINIMIZE, MF_BYCOMMAND);
DeleteMenu(SystemMenu, SC_MAXIMIZE, MF_BYCOMMAND);

我想灰显[☓],[☐]和[ - ]按钮,但只有[☓]按钮显示为灰色。

为什么呢?感谢。

PS:虽然[☐]和[ - ]按钮未显示为灰色,但它们已被禁用。

1 个答案:

答案 0 :(得分:2)

隐藏按钮有效:

LONG_PTR style = GetWindowLongPtr(ConsoleWindow, GWL_STYLE);
style &= ~(WS_MAXIMIZEBOX | WS_MINIMIZEBOX);
SetWindowLongPtr(ConsoleWindow, GWL_STYLE, style);
SetWindowPos(ConsoleWindow, NULL, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_DRAWFRAME);

SetWindowPos()并不是绝对必要的,至少在Windows 8.1上,我包含它以防万一。这些按钮在短时间内对用户可见,没有我能想到的简单修复。