这是一个逃避谷歌搜索的问题,部分原因是“位置”一词既适用于屏幕上的位置(这就是我所说的),也适用于上/下控制的当前位置(可能称之为当前位置)价值,这不是我所说的。)
如何设置上/下控制的正确位置和大小?文档对此非常模糊:它表示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更改,字体更改等)的设置在程序执行期间发生更改的情况。
我开始怀疑我是否应该每次都重新创建一个更新,但这听起来不必要的昂贵,我宁愿保留它作为最后的手段。