Window 仅使用 WS_OVERLAPPED 时,不同 Windows 版本的大小不同
Window size differs in different Windows versions when only using WS_OVERLAPPED
当使用以下代码创建Window时:
CreateWindowEx(0, "WinClass", "My Title", WS_OVERLAPPED | WS_SYSMENU, 261, 172, 594, 384, NULL, NULL, hInstance, NULL);
我在 Windows XP 和 Windows 7 下得到不同的 Window 尺寸:
但是,当我添加WS_THICKFRAME
样式时,问题就解决了:
CreateWindowEx(0, "WinClass", "My Title", WS_OVERLAPPED | WS_SYSMENU | WS_THICKFRAME, 261, 172, 594, 384, NULL, NULL, hInstance, NULL);
但不幸的是 WS_THICKFRAME
使 Window 可调整大小,这是我不想要的。
编辑:
我希望它在不同版本的 Windows 中保持相同的大小是客户区。
我想你在找 AdjustWindowRect function:
Calculates the required size of the window rectangle, based on the
desired client-rectangle size. The window rectangle can then be passed
to the CreateWindow function to create a window whose client area is
the desired size.
当使用以下代码创建Window时:
CreateWindowEx(0, "WinClass", "My Title", WS_OVERLAPPED | WS_SYSMENU, 261, 172, 594, 384, NULL, NULL, hInstance, NULL);
我在 Windows XP 和 Windows 7 下得到不同的 Window 尺寸:
但是,当我添加WS_THICKFRAME
样式时,问题就解决了:
CreateWindowEx(0, "WinClass", "My Title", WS_OVERLAPPED | WS_SYSMENU | WS_THICKFRAME, 261, 172, 594, 384, NULL, NULL, hInstance, NULL);
但不幸的是 WS_THICKFRAME
使 Window 可调整大小,这是我不想要的。
编辑:
我希望它在不同版本的 Windows 中保持相同的大小是客户区。
我想你在找 AdjustWindowRect function:
Calculates the required size of the window rectangle, based on the desired client-rectangle size. The window rectangle can then be passed to the CreateWindow function to create a window whose client area is the desired size.