消息获取Win32编程技巧
获取系统消息的操作在 Windows 编程中挺常见的,是当你需要控制应用程序的主消息循环时。GetMessage函数是阻塞的,它会从消息队列中取出消息并阻塞,直到有新的消息进来。举个例子,你在写一个窗口程序时,GetMessage会让程序一直等待直到有消息需要。不过,如果你不想让程序卡住,可以使用PeekMessage。它跟GetMessage
类似,但不会把消息从队列中移除,调用它后可以继续执行其他代码,避免卡死。比如你会用PeekMessage
来做一些非阻塞的 UI 更新。
需要注意的是,PeekMessage可以指定消息范围和窗口句柄,如果你只关心特定的窗口和消息类型,可以通过设置过滤条件来优化。比如,如果你只关心键盘消息,可以把wMsgFilterMin
和wMsgFilterMax
设置为键盘消息的范围。
总结来说,GetMessage是用来阻塞的消息循环,PeekMessage则是用来非阻塞地查看消息,你可以根据需要选择合适的函数。
你如果想深入了解消息的细节,这篇文章挺不错,可以帮你搞定键盘鼠标消息的。
2.67MB
文件大小:
评论区