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

WM SIZE讯息
更改大小后,WM SIZE消息将发送到窗口。

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

有什么方法可以捕获最后的WM_SIZE消息,而不是使用调整大小的消息来“垃圾邮件”我的程序吗?

最佳答案

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

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

关于c++ - 捕获最后的WM_SIZE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2797468/

10-09 13:38