使用GetWindowLong()获取窗体风格属性
取消风格WS_SIZEBOX
设置风格WS_SIZEBOX
使用SetWindowLong设置窗体风格属性
取消WS_SIZEBOX属性或WS_THICKFRAME属性都可以使窗体不可调整大小
例子
DWORD dwStyle = GetWindowLong(hwnd, GWL_STYLE);
dwStyle ^= WS_SIZEBOX;//设置窗体不可调整大小
SetWindowLong(hwnd, GWL_STYLE, dwStyle);
其它的属性设置
dwStyle ^= WS_MINIMIZEBOX;//设置窗体取消最小化按钮
dwStyle ^= WS_MAXIMIZEBOX;//设置窗体取消最大化按钮
dwStyle ^= WS_DLGFRAME;//设置窗体取消标题栏边框
也可以在窗体创建时设置窗体属性,与属性异或操作是取消属性,与属性或操作是添加属性
HWND hwnd = CreateWindowEx(
0, // Optional window styles.
CLASS_NAME, // Window class
"testwindow", // Window text
WS_OVERLAPPEDWINDOW^WS_DLGFRAME,//取消标题栏
// Size and position
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, // Parent window
NULL, // Menu
hInstance, // Instance handle
NULL // Additional application data
);
对于有背景的窗体,在窗体创建结束后再取消WS_SIZEBOX属性,会导致背景图片有白色边框,而在创建窗体时取消WS_SIZEBOX属性就不会有这种情况
https://learn.microsoft.com/en-us/windows/win32/winmsg/window-styles