捕获最后的 WM_SIZE
Posted
技术标签:
【中文标题】捕获最后的 WM_SIZE【英文标题】:capture the last WM_SIZE 【发布时间】:2010-05-09 11:23:22 【问题描述】:当我调整窗口大小时,我想告诉程序的另一部分我的窗口已经改变了大小。我在MSDN 上读到:
WM SIZE 消息 WM SIZE 消息在窗口大小改变后发送到窗口。
但是,即使在拖动时我也会收到 WM_SIZE。 我注意到在我的窗口调整大小时还会发送一条 WM_SIZING 消息。目前我看不出 WM_SIZE 和 WM_SIZING 之间的区别。
有什么方法可以捕获最后一条 WM_SIZE 消息,以免通过调整大小消息“垃圾邮件”我的程序?
【问题讨论】:
【参考方案1】:当您开始拖动窗口时,系统进入模态移动/调整大小循环;在拖动操作完成之前,它不会返回到您自己的消息循环。您仍然收到WM_SIZE
,因为它直接发送到窗口过程,但它不会流经您自己的消息循环。
在这样的模态拖动动作开始时,系统将WM_ENTERSIZEMOVE
发送到您的窗口过程。当您释放鼠标按钮时,您的应用程序将获得WM_EXITSIZEMOVE
。这可能是您想要触发的消息。
【讨论】:
如果我调整了很多尺寸,我需要捕捉所有这些尺寸。我使用哪条消息?以上是关于捕获最后的 WM_SIZE的主要内容,如果未能解决你的问题,请参考以下文章