wordpress   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了windows – 窗口消息“可靠”吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

这有点是关于 Windows编程的一般问题: Window消息“可靠”吗? 例如(这些只是示例): >你能确定在光标进入屏幕之前会发生WM_MOUSEMOVE吗? >如果插入设备,您能否确定会收到WM_DEVICECHANGE消息? >如果您的窗口失去焦点,您能否确定收到WM_KILLFOCUS消息? 或者,换句话说:你能否确定你会在适当的时候得到适当的信息,或者你是否总是必须采取防御性的方式进行
这有点是关于 Windows编程的一般问题:

Window消息“可靠”吗?

例如(这些只是示例):

>你能确定在光标进入屏幕之前会发生WM_MOUSEMOVE吗?
>如果插入设备,您能否确定会收到WM_DEVICECHANGE消息?
>如果您的窗口失去焦点,您能否确定收到WM_KILLFOCUS消息?

或者,换句话说:你能否确定你会在适当的时候得到适当的信息,或者你是否总是必须采取防御性的方式进行编码,以防某些情况下你可能因为没有明显记录的原因而错过了一条信息?

例:

>保证(AFAIK)文件系统过滤器驱动程序不会“错过”文件操作或更改通知.
>相比之下,不保证ReadDirectoryChangesW不会错过通知.事实上,如果缓冲区溢出,它可能会错过很多.

注意:

我不是在谈论针对对手的情况(例如有人劫持你的窗口程序或安装钩子/过滤器);这几乎会使任何保证无效.我只是询问可能真的发生的模糊情况,即使没有人故意表达任何坏事,比如一些随机缓冲区溢出,如果有人使用SendInput等,假设您已经控制了自己的代码.

解决方法

不,您不能确定给定的消息将按特定顺序传递.以下是几个原因

>可以以信息方式发送消息,这可以用于模拟“不可能”的场景,例如WM_KEYUP后跟WM_KEYDOWN.
>另一个例程可以对您的窗口进行子类化,并有选择地拦截消息,而不是将它们发送到您的WNDPROC

最好在任何排序很重要的场景下进行防御性编码

大佬总结

以上是大佬教程为你收集整理的windows – 窗口消息“可靠”吗?全部内容,希望文章能够帮你解决windows – 窗口消息“可靠”吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: