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就是程序的入口点) |
正在阅读:《编程高手箴言》读后感(3)《编程高手箴言》读后感(3)
2004-04-07 10:02
出处:CSDN
责任编辑:sdq
键盘也能翻页,试试“← →”键