正在阅读:《编程高手箴言》读后感(3)《编程高手箴言》读后感(3)

2004-04-07 10:02 出处:CSDN 作者:seacloud 责任编辑:sdq

   177 // Mesage handler for about box.
   178 LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
   179 {
   180  switch (message)
   181  {
   182   case WM_INITDIALOG:
   183     return TRUE;
   184
   185   case WM_COMMAND:
   186    if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
   187    {
   188     EndDialog(hDlg, LOWORD(wParam));
   189     return TRUE;
   190    }
   191    break;
   192  }
   193     return FALSE;
   194 }
   
  一个普通Win32 GUI程序,你只要不去关它,它就总是存在。显然,这里需要一个类似循环的东西存在,来保证我们的程序总是在运行。看看代码第43行开始的几行:
    43  while (GetMessage(&msg, NULL, 0, 0))
    44  {
    45   if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
    46   {
    47    TranslateMessage(&msg);
    48    DispatchMessage(&msg);
    49   }
    50  }

   呵呵,我们找到这个循环了,就是这短短的8行代码,保持了我们的程序在系统里存在,一旦这个循环被打破了,那么我们的程序就推出了。至于怎么才能打破这个循环,去看看GetMessage的说明就一清二楚了。(注:在普通的Win32程序里,大致可以认为WinMain就是程序的入口点)
   
察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:

键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品