现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

GetMessage的说明

2012-08-25 07:01 工业·编程 ⁄ 共 818字 ⁄ 字号 暂无评论
  1. 说明:
  2.     此函数从调用其的线程的消息队列中读取一个消息。
  3.     当它成功取得一个消息时,它才会发送自己取到的消息并返回。
  4.     这一点不同于PeekMessage,PeekMessage不会等到取到消息之后再返回,
  5.     即如果此时没有消息,它便直接返回了。
  6.     返回值:
  7.     如果函数取到了非WM_QUIT消息,则返回为非0值;
  8.     如果函数取到了WM_QUIT消息,则返回0;
  9.     如果有错误发生(比如窗口句柄hWnd无效或lpMsg无效),则返回-1。
  10.     由于其返回值类型多样,所以正确调用此函数的方式为:
  11.     BOOL bRet;
  12.     while( (bRet = GetMessage( &msg,NULL,0,0 )) != 0)
  13.     {
  14.         if (bRet == -1)
  15.         {
  16.             // 处理错误或者返回
  17.         }
  18.         else
  19.         {
  20.             TranslateMessage(&msg);
  21.             DispatchMessage(&msg);
  22.         }
  23.     }
  24.     注意:
  25.     第三个参数和第四个参数无法过滤年WM_QUIT消息。
  26. */
  27. BOOL GetMessage(LPMSG lpMsg,            //输出型参数,保存取得的消息信息
  28. HWND hWnd,              //窗口句柄,指示要取哪个窗口的消息。
  29.                                         //需要注意的一点是此句柄所 指示的窗口必须属于调用者线程。
  30. //当此参数为NULL时,
  31.                                         //函数会取得发送到调用者线程中所有窗口的消息。
  32. UINT wMsgFilterMin,     //消息过滤,具体可参考MSDN
  33. UINT wMsgFilterMax
  34.                 );

给我留言

留言无头像?