捕获最后一个WM_SIZE

Def*_*ult 10 c++ winapi resize

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

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

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

有没有什么方法可以捕获最后一个WM_SIZE消息,以便不通过调整大小消息"垃圾"我的程序?

Tho*_*mas 18

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

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