专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »VB教程 » windowsapi函数:Windows API一日一练(15)PostQuitMessage函数 »正文

windowsapi函数:Windows API一日一练(15)PostQuitMessage函数

来源: 发布时间:星期一, 2009年9月28日 浏览:3次 评论:0
  自然界面里各种生物都是有其生命周期也是有其生命周期创建时就是它出生了当它运行工作中就是成年期最后少不了要死亡那么死亡是如何样出现呢?像以前介绍GetMessage里是使用个循环不断地检测消息周止复始是不可能出现死亡但它会检测到消息WM_QUIT就退出来那现在问题是谁发送WM_QUIT消息出来呢?这就是PostQuitMessage所做工作当你点击窗口右上角关闭时Windows就会把窗口从系统里删除这时就会发出消息WM_DESTROY给窗口消息处理WindowProcWindowProc收到这条消息后最需要做件事情就是PostQuitMessage发出退出消息让消息循环结束

  PostQuitMessage声明如下:

WINUSERAPI
VOID
WINAPI
PostQuitMessage(
    __in  nExitCode); 


  nExitCode是退出标识码它被放到WM_QUIT消息参数wParam里

  这个例子如下:

#001 //
#002 // 目: 处理主窗口消息.
#003 //
#004 // 蔡军生 2007/07/12   QQ:9073204
#005 //
#006 LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
#007 {
#008   wmId, wmEvent;
#009  PAINTSTRUCT ps;
#010  HDC hdc;
#011 
#012  switch (message)
#013  {
#014   WM_COMMAND:
#015         wmId    = LOWORD(wParam);
#016         wmEvent = HIWORD(wParam);
#017         // 菜单选项命令响应:
#018         switch (wmId)
#019         {
#020          IDM_ABOUT:
#021               DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
#022               ;
#023          IDM_EXIT:
#024               DestroyWindow(hWnd);
#025               ;
#026         default:
#027                DefWindowProc(hWnd, message, wParam, lParam);
#028         }
#029         ;
#030   WM_PAINT:
#031         hdc = BeginPa(hWnd, &ps);
#032         // 
#033         EndPa(hWnd, &ps);
#034         ;
#035   WM_DESTROY:
#036        PostQuitMessage(0);
#037        ;
#038  default:
#039          DefWindowProc(hWnd, message, wParam, lParam);
#040  }
#041   0;
#042 }


  第36行就是PostQuitMessage来处理退出应用 

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: