如何将C++中的关闭按钮灰色化?有可能吗?我试过了
#define WINVER 0x0500
#include<windows.h>
DeleteMenu(SystemMenu, SC_CLOSE, MF_BYCOMMAND);但没起作用。
发布于 2014-03-27 20:12:27
有关如何使用纯Win32或MFCs进行操作,请参见这里的Win32。所有的功劳都归功于他们。我刚写了解释。
此函数将启用或禁用Win32上的菜单选项(以及副作用,关闭按钮):
BOOL EnableCloseButton(const HWND hwnd, const BOOL bState)
{
HMENU hMenu;
UINT dwExtra;
if (hwnd == NULL) return FALSE;
if ((hMenu = GetSystemMenu(hwnd, FALSE)) == NULL) return FALSE;
dwExtra = bState ? MF_ENABLED : (MF_DISABLED | MF_GRAYED);
return EnableMenuItem(hMenu, SC_CLOSE, MF_BYCOMMAND | dwExtra) != -1;
}它接受窗口的HWND和关闭按钮所需的状态(真启用,假禁用)。
对于MFC,您可以使用此版本,它接受CWnd而不是HWND:
BOOL EnableCloseButton(const CWnd *wnd, const BOOL bState)
{
CMenu *menu;
if (wnd == NULL) return FALSE;
if ((menu = wnd->GetSystemMenu(FALSE)) == NULL) return FALSE;
return menu->EnableMenuItem(SC_CLOSE, MF_BYCOMMAND | bState ? MF_ENABLED : MF_GRAYED) != -1;
}https://stackoverflow.com/questions/22698131
复制相似问题