禁用 Win32 中的最小化、最大化、关闭按钮

Disable Minimize, Maximize, Close buttons in Win32

本文关键字:最大化 关闭按钮 最小化 Win32 禁用      更新时间:2023-10-16

我做过研究,但还没有找到解决问题的方法。有什么好方法可以禁用Win32中的最小化,最大化和关闭按钮?我希望它们仍然存在并具有动画感,但不敏感。我还希望能够通过拖动框架来调整窗口大小。

SetWindowLong(hwnd, GWL_STYLE,
               GetWindowLong(hwnd, GWL_STYLE) & ~WS_MINIMIZEBOX); 

您可以将该代码放在窗口初始化的位置。查看 https://devblogs.microsoft.com/oldnewthing/20100604-00/?p=13803

只需捕获相关事件(WM_SYSCOMMAND 和 WM_CLOSE),并通过返回 0 告诉 Windows 忽略它们。请注意,在WM_SYSCOMMAND的情况下,您应该只对您真正想要阻止的事件执行此操作,即事件代码SC_MINIMIZE、SC_MAXIMIZE等。应允许所有其他人正常通过。有关详细信息,请参阅 https://msdn.microsoft.com/en-us/library/windows/desktop/ms646360%28v=vs.85%29.aspx。

但是,请注意,如果您提供按钮,用户将期望它们正常工作。只是隐藏它们可能是更好的选择。您可以通过调用 SetWindowLong (https://msdn.microsoft.com/en-us/library/ms633591%28v=vs.85%29.aspx) 并更改 GWL_STYLE 属性来执行此操作,使其不再包含WS_MINIMIZEBOX、WS_MAXIMIZEBOX 等标志。