捕获最后一个WM_SIZE

时间:2010-05-09 11:23:22

标签: c++ winapi resize

当我调整窗口大小时,我想告诉我程序的另一部分我的窗口已经改变了大小。我在MSDN上读到:

WM SIZE留言
WM SIZE消息在其大小发生变化后发送到窗口。

但是,即使在拖动时我也会收到WM_SIZE。 我注意到,当我的窗口调整大小时,还会发送一条WM_SIZING消息。目前我没有看到WM_SIZE和WM_SIZING之间的区别。

是否有某种方法可以捕获最后一条WM_SIZE消息,以便不通过调整大小消息“垃圾”我的程序?

1 个答案:

答案 0 :(得分:17)

当您开始拖动窗口时,系统会进入模态移动/调整大小循环;在拖动操作完成之前,它不会返回到您自己的消息循环。您仍然获得WM_SIZE,因为它直接发送到窗口过程,但它不会流经您自己的消息循环。

在这种模态拖动操作开始时,系统会将WM_ENTERSIZEMOVE发送到您的窗口过程。当您释放鼠标按钮时,您的应用程序将获得WM_EXITSIZEMOVE。这可能是您要触发的消息。