定位/重新定位/调整大小/调整大小/移动上下控件的正确方法是什么?什么是正确的尺寸?它应该是好友的孩子吗?

时间:2014-10-28 16:23:56

标签: c winapi layout comctl32

这是一个逃避谷歌搜索的问题,部分原因是“位置”一词既适用于屏幕上的位置(这就是我所说的),也适用于上/下控制的当前位置(可能称之为当前位置)价值,这不是我所说的。)

如何设置上/下控制的正确位置和大小?文档对此非常模糊:它表示UDS_ALIGNLEFT / UDS_ALIGNRIGHT样式会自动重新定位和调整好友窗口的大小,但这似乎只发生在控件创建上。 MSDN上给出的示例代码表示给出上下位置(0,0)和大小0x0,但同样,这似乎只影响窗口创建。这个窗口创建尤其成问题,因为我在创建窗口后使用UDM_SETBUDDY设置好友控件。

更奇怪的是,Windows布局页面(当前的Vista +页面,MMC首选大小页面和旧的 Microsoft Windows用户体验书籍)没有指定适当的大小。上/下控制应该是!

我确实尝试移动/调整好友窗口,但是上下控件没有跟随。我尝试移动/调整上下控制,但是整个上下控制都是给定的大小而伙伴控件没有跟随。我尝试移动/调整伙伴窗口的大小,然后将上下大小设置为0x0并将位置设置为(0,0),但这也不起作用。

或者,我是否需要将伙伴窗口作为上下控件的父级才能使其工作?或者那不起作用?

我正在使用Common Controls 6并在Windows XP和wine上进行过测试。

感谢。

更新

事实证明,设置(0,0)/ 0x0确实有效,即使是UDM_SETBUDDY - 但只是第一次。我不确定这是“第一时间段”还是“第一次设置一个独特的伙伴”。使用UDM_SETBUDDY重复设置相同的伙伴在Windows XP上不起作用(虽然它在葡萄酒中起作用,所以也许我应该再试一次......)。

我的问题是我在调整大小时确定控件的大小(因为我使用DLU计算)。在创建时具有固定的宽度/高度也无法正确处理可能影响DLU到像素转换(DPI更改,字体更改等)的设置在程序执行期间发生更改的情况。

我开始怀疑我是否应该每次都重新创建一个更新,但这听起来不必要的昂贵,我宁愿保留它作为最后的手段。

0 个答案:

没有答案