如何使Win32对话框出现在默认位置(CW_USEDEFAULT)?

4

如何使Win32的对话框以默认位置/大小出现?

(即,当窗口已经创建时,如何模拟CreateWindow中的CW_USEDEFAULT ?)

2个回答

9

创建一个带有 CW_USEDEFAULT 属性的临时不可见窗口,并查看其位置。将您的对话框移动到此位置。


我...甚至不知道该说什么... +1 - user541686
4
说真的,难道没有更优雅的解决方案吗?我觉得为了查询窗口的位置/大小而创建一个新窗口很奇怪。 - user541686
4
没有“where would you have put a window created with CW_USEDEFAULT”这个函数。看到CW_USEDEFAULT的效果,唯一的方法是实际创建一个窗口。另一个解决方案是使用CW_USEDEFAULT创建一个不可见的窗口,然后将你的对话框创建为该不可见窗口的拥有窗口。由于对话框是相对于其所有者定位的,因此将对话框模板位置设置为(0,0)。但这确实会影响你的所有者链。 - Raymond Chen

3

在资源文件中的对话框模板中,使用CW_USEDEFAULT16的值,即0x8000,作为X和Y位置的值。

例如:
IDD_PADDLG DIALOGEX 0x8000, 0x8000, 317, 183
<-- rest of the dialog -->

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接