如下图所示:
实际做需求的时候,可能会遇到需要禁用最大化和最小化按钮的场景;
Windows提供了接口可以对此处进行修改;
// 注意下述两个标志位:[官方文档](https://docs.microsoft.com/en-us/windows/win32/winmsg/window-styles)
WS_MAXIMIZEBOX
WS_MINIMIZEBOX
/// \brief 修改HWND窗口的属性
/// 参数1: dwRemove 表示需要移除的属性
/// 参数2: dwAdd 标识需要新增的属性
/// 参数3: nFlags 为窗口大小和位置标志(可以不填入)
BOOL ModifyStyle(DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0)
{
ASSERT(::IsWindow(m_hWnd));
DWORD dwStyle = ::GetWindowLong(m_hWnd, GWL_STYLE);
DWORD dwNewStyle = (dwStyle & ~dwRemove) | dwAdd;
if(dwStyle == dwNewStyle)
return FALSE;
// 文档链接:[SetWindowLongPtrA](https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowlongptra)
::SetWindowL