C ++ Windows删除最大化框

时间:2011-09-27 21:09:57

标签: c++ c windows winapi maximize

我在调用CreateWindow时使用这些窗口样式 WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX
这会禁用最大化框,但有什么方法可以完全删除它吗?

2 个答案:

答案 0 :(得分:2)

没有简单的方法,但如果你打算自己画标题栏 - 在这种情况下你可以做到。

为了给您一个想法,本文Adding a 'Minimize to tray'-button to a Form's caption bar介绍了如何添加按钮。删除标准按钮大致相同 - non-client area

的自定义

答案 1 :(得分:1)

这将删除Windows 7面板中的关闭,最小化和最大化按钮 我意识到这非常(非常)迟到 ,但在这里发布,因为它可能会帮助其他人有同样的问题。

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);  
}