Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C++ Windows remove maximize box

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?

like image 935
Josh Avatar asked Oct 09 '22 21:10

Josh


2 Answers

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.

like image 120
Roman R. Avatar answered Oct 13 '22 10:10

Roman R.


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);  
}
like image 29
ryyker Avatar answered Oct 13 '22 10:10

ryyker