如何在调整大小时强制窗口保持一定的宽度/高度比

时间:2010-03-15 16:31:02

标签: c++ winapi

我希望我的窗口始终保持一定的比例,比如1.33333333。因此,如果窗口为width = 800, height = 600并且用户将宽度更改为600,我想自动将高度更改为450.

我已经拦截了WM_SIZE,但我不知道它是否足够;我也不知道如何改变宽度或高度以保持我的比例。

3 个答案:

答案 0 :(得分:9)

当用户调整窗口大小时,

WM_SIZING被发送到窗口。

而是处理WM_WINDOWPOSCHANGING - 这是由内部SetWindowPos函数在代码(或用户)更改窗口大小时发送的,并且将确保均匀平铺&级联操作遵守您的规模调整政策。

答案 1 :(得分:3)

请参阅WM_SIZINGhttp://msdn.microsoft.com/en-us/library/ms632647.aspx

处理此消息可以更改生成的窗口大小。

答案 2 :(得分:0)

尝试 Resize 事件。有一个例子说明如何在链接中保持所需的宽高比。