捕获最后的 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的主要内容,如果未能解决你的问题,请参考以下文章

如何使用正则表达式验证捕获组中的最后一个字符

如何在 extjs3 网格中捕获最后一行编辑事件

如何在android中显示最后从相机捕获的图像?

如何记录使用 AVCaptureSession 捕获的第一个和最后一个电影帧的确切时间?

在 SwiftUI 中捕获绑定的最后一次更改 / 组合

在变量中捕获最后一个位置的对象?