c++ Windows移除最大化框

C++ Windows remove maximize box

本文关键字:最大化 Windows c++      更新时间:2023-10-16

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

这不是一个简单的方法,但是如果你要自己绘制标题栏——在这种情况下你可以这样做。

给你一个想法,这篇文章添加一个"最小化到托盘"按钮到窗体的标题栏解释了如何添加一个按钮。删除标准按钮与non-client area的自定义大致相同。

这将删除关闭,最小化和最大化按钮从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);  
}