仅使用WS_OVERLAPPED时,窗口大小在不同的Windows版本中有所不同

时间:2015-08-08 18:57:54

标签: c winapi windows-7 windows-xp

使用以下代码创建窗口时:

CreateWindowEx(0, "WinClass", "My Title", WS_OVERLAPPED | WS_SYSMENU, 261, 172, 594, 384, NULL, NULL, hInstance, NULL);

我在Windows XP和Windows 7下获得了不同的窗口大小:

enter image description here

但是,当我添加WS_THICKFRAME样式时,问题就解决了:

CreateWindowEx(0, "WinClass", "My Title", WS_OVERLAPPED | WS_SYSMENU | WS_THICKFRAME, 261, 172, 594, 384, NULL, NULL, hInstance, NULL);

但不幸的是WS_THICKFRAME使得窗口可调整大小,我不想要。

修改

我希望它在不同版本的Windows中保持相同的大小是客户区。

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找AdjustWindowRect function

  

根据需要计算窗口矩形所需的大小   所需的客户矩形大小。然后可以传递窗口矩形   到CreateWindow函数创建一个客户区为的窗口   所需的大小。