【发布时间】:2015-11-01 01:30:49
【问题描述】:
使用以下代码创建Window时:
CreateWindowEx(0, "WinClass", "My Title", WS_OVERLAPPED | WS_SYSMENU, 261, 172, 594, 384, NULL, NULL, hInstance, NULL);
我在 Windows XP 和 Windows 7 下得到不同的窗口大小:
但是,当我添加WS_THICKFRAME 样式时,问题就解决了:
CreateWindowEx(0, "WinClass", "My Title", WS_OVERLAPPED | WS_SYSMENU | WS_THICKFRAME, 261, 172, 594, 384, NULL, NULL, hInstance, NULL);
但不幸的是,WS_THICKFRAME 使窗口可调整大小,这是我不想要的。
编辑:
我希望它在不同版本的 Windows 中保持相同大小的是客户区。
【问题讨论】:
-
坐标是窗口的内尺寸还是外尺寸?
-
@Olaf 窗口的内部或外部尺寸是什么意思?
-
很难看出这里的实际问题是什么。或者确实你的问题是什么。您能否展开以向我们说明您想回答什么问题。
-
在不同版本的Windows下,窗框的粗细会有所不同。最好从所需的客户端尺寸(Olaf 所说的“内部尺寸”)开始 - inside 框架的区域 - 并使用
AdjustWindowRectEx来计算总尺寸。 -
@Olaf:它叫做客户区。如果您想与 Windows 开发人员一起玩,请习惯他们的术语。 (顺便说一句,非客户区也是“可用”。)
标签: c winapi windows-7 windows-xp