`
jishublog
  • 浏览: 869470 次
文章分类
社区版块
存档分类
最新评论

WINDOWS消息进制浅谈

 
阅读更多

WINDOWS系统是用消息来进行驱动的,所谓的消息可以简单理解为对某个触发事件所作出的响应动作或者说应答内容,比如你单击鼠标左键定位光标,当你按下左键,

这个触发事件会发消息给WINDOWS系统,WINDOWS系统内有响应的响应功能函数接受这个消息,并且作出反应。

WINDOWS系统提供了应用程序之间,应用程序与系统之间通信的一种手段,应用程序要实现的功能需要消息来触发,并且靠对消息的响应和处理来完成。系统中有两种消息队列,一个是系统消息队列,一个是应用程序消息队列,WINDOWS监控所有的计算机输入设备,如键盘,鼠标等,当一个事件发生时,WINDOWS会先把输入的消息放入系统消息队列当中,再将消息拷贝到对应执行的应用程序消息队列中,应用程序消息处理程序将反复检测消息队列,把检测到的消息队列发送到响应的窗口函数中。消息不是抢占性的。按先到先处理原则,当然一些系统消息除外。

消息处理的几个函数说明:

GetMessage用于获取消息队列里的消息,对于一般的消息,此函数返回非零值,对于WM_QUIT消息,返回零,结束程序。取得当前消息后,应该先转换消息,然后再分发。即分发给相应的处理函数。

TranslateMessage用于消息转换,将虚拟键消息转换为字符消息。字符消息被寄送到调用线程的消息队列里,当下一次线程调用函数GetMessage时被读出

DispatchMessage用于分发一个消息给窗口程序。通常消息从GetMessage函数获得,消息传递给操作系统,操作系统再去调用回调函数进行处理

SendMessage用于发送消息,可以自己给自己发送消息, 该函数将指定的消息发送到一个或多个窗口。必须制定,直到窗口程序处理完消息再返回。

PostMessage用于把消息寄送到消息队列中,立即返回,是异步模式。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics