对消息队列和消息循环的理解

理解消息循环 
 
理解消息循环经及Windows程序整个的消息发送机制对于任何Windows程序都是非常重要也是最根本的.现在我们已经尝试了如何处理消息循环,我们有必要对这整个过程再深入一些.因为假如你不能理解消息循环具体是怎么一回事的话,那么以后你就会越来越糊涂. 
什么是消息?
消息就是一个整型值.如果你查看一下你的头文件的话(当你去调查API的工作机制的话,这是一个非常好的也是大多数人都有的习惯)你就发现下面这些东西: 
#define WM_INITDIALOG                   0x0110
#define WM_COMMAND                      0x0111

#define WM_LBUTTONDOWN                  0x0201

...等等. 消息是用于底层这个层次上,窗口之间的通信.假如你希望窗口或是控件(其实也是一个特殊的窗口)做某个事情的话,你就发送给它一个消息. 假如有另一个窗口希望你做某个事情的话,它也送一个消息给你.假如有比如像用户敲击键盘,移动鼠标,点击按钮之类的事件发生的话,那么这些消息就由系统发送给那些受到影响的窗口.假如你的窗口是其中的一个的话,你就要处理这个消息,对这个消息做出相应的反应.
每个窗口消息都有两个参数,wParam和lParam.最初wParam是16位的,lParam是32位,但是在WIN32中,它们都是32位的.不是每条消息都用到了这些参数,而且不同的消息 对它们的使用是不同的.举个例子,WM_CLOSE消息就两个参数都没有用到,你可以把两个都忽略.WM_COMMAND消息就两个参数都用上了,wParam参数包含了两个值,一个是HIWORD(wParam),它是消息的通知码(如果可用的话),另一个是LOWORD(wParam),它是发送消息的控件或是菜单的标识符. lParam是发送消息的控件的HWND(HWND是一种数据类型,也就是窗口的句柄.控件的实质也是一个窗口,因此它也有句柄),当这个消息不是来自于一个控件或是窗口,lParam 的值就是NULL,.(比如当消息是由菜单产生时,lParam就是NULL)
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值