问题
I'm using these window styles when calling CreateWindow
WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX
This disables the maximize box, but is there any way I can completely remove it?
回答1:
No easy way, but if you are going to draw the title bar yourself - in this case you can do it.
To give you an idea, this article Adding a 'Minimize to tray'-button to a Form's caption bar explains how to add a button. Removing standard button is about the same - customization of non-client area
.
回答2:
This will remove the close, minimize and maximize buttons from a Windows 7 panel I realize this is very (very) late in coming, but posted it here as it may help someone else with same problem.
void ClearButtons(void)
{
int index = WS_BORDER;
unsigned int a = (unsigned int)((WS_BORDER | WS_CAPTION) & (~WS_ICONIC));
LONG_PTR lPtr;
HWND hWnd = GetActiveWindow();
lPtr = GetWindowLongPtr(hWnd, index);
SetWindowLongPtr(hWnd, GWL_STYLE, a);
}
来源:https://stackoverflow.com/questions/7575720/c-windows-remove-maximize-box