喝着一杯咖啡

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

消息循环产生来源是:每一个windows程序都维护一个信息列队,在发生输入事件后,windows将事件转化为消息,并放入信息列队中。程序取出消息的循环就叫消息循环。

while(GetMessage(&msg,null,0,0))
{
     TranslateMessage(
&msg);
     DispatchMessage(
&msg);
}

 

msg对应的是MSG结构该结构具有如下6个域:

  hwnd程序自身的窗口句柄、message消息信息【是一个数值常量】、wParam消息参数、lParam消息参数、time消息进入时间、pt消息进入列队的鼠标坐标【pt是一个POINT结构体具有x,y2个域】。 
  接着消息被TrasnlateMessage给windows进行一些转换(以后详细说细节)。
  然后DispatchMessage把经过转化的消息给当前窗口程序的处理函数【也就是程序如何处理用户动作的函数】,经过处理后结束DispatchMessage并返回,接着继续下个消息循环。

 

那程序时怎么处理消息里的动作呢?

LRESULT CALLBACK WndProc(HWND hwnd,UNIT message,WPARAM wParam,LPARAM lParam)
{
    switch结构来区分是何种东走并作出反应
}

 

 具体的机制将在下篇文章介绍

posted on 2010-01-18 23:06  喝着一杯咖啡  阅读(197)  评论(0)    收藏  举报