c++ - 捕获最后一个 WM_SIZE

标签 c++ winapi resize

当我调整窗口大小时,我想告诉程序的另一部分我的窗口已更改大小。我在 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/

相关文章:

c++ - 是否有 winapi 调用可以在控制台中设置颜色,如 'color xx' 命令?

c++ - 赢 api readConsole()

java - 当文本更改时如何阻止 JLabel 更改其大小?

java - 如何调整 libGDX 中的文本大小

c++ - 为什么 std::string 不能在用户输入中占用空格?

c++ - 在 Visual Studio 中使用 C++/C# 连接 MySQL

java - CreateProcessW 失败 (ACCESS_DENIED)

android - 在 Photoshop for Android 中创建 XHDPI、HDPI、MDPI、LDPI 图像

c++ - Linux 链接到任何可用的库版本

具有多个类型名的 C++ 模板