我将以下样式应用于我的窗口,我可以调整预期的大小(WS_CAPTION,WS_VISIBLE,WS_CLIPSIBLINGS,WS_CLIPCHILDREN,WS_SYSMENU,WS_THICKFRAME,WS_OVERLAPPED,WS_MAXIMIZEBOX,WS_MINIMIZEBOX(。我的目标是删除WS_SYSMENU并禁用调整大小。
因此,我随后删除了WS_THICKFRAME,并按预期禁用了窗口大小调整。然后我还必须删除WS_SYSMENU,但窗口大小调整又回来了。
我的最后一组样式是(WS_CAPTION、WS_VISIBLE、WS_CLIPSIBLINGS、WS_CLIPCHILDREN、WS_OVERLAPPED、WS_MAXIMIZEBOX、WS_MINIMIZEBOX(。
有人知道为什么会这样吗?
普通的 win32 窗口中对我来说效果很好:
SetWindowLong(hWnd, GWL_STYLE, WS_CAPTION|WS_VISIBLE|WS_CLIPSIBLINGS|WS_CLIPCHILDREN|WS_OVERLAPPED|WS_MAXIMIZEBOX|WS_MINIMIZEBOX);
SetWindowPos(hWnd, 0, 0, 0, 0, 0, SWP_NOZORDER|SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE|SWP_FRAMECHANGED);
最终的样式是0x16C30000和0x00000100。
当您想要删除大小调整边框时,添加WS_POPUP
通常会有所帮助。
如果没有WS_SYSMENU,WS_MAXIMIZEBOX和WS_MINIMIZEBOX将不会在标题中可见。您可以通过禁用系统菜单中的SC_CLOSE来禁用关闭按钮,如果这是您想要的......