1. 程式人生 > >Windows API一日一練 15 PostQuitMessage函數

Windows API一日一練 15 PostQuitMessage函數

make 調用 show post 聲明 code man back 怎麽

自然界面裏,各種生物都是有其生命周期的。程序也是有其生命周期的,創建時就是它出生了,當它運行工作中就是成年期,最後少不了要死亡的,那麽程序的死亡是怎麽樣出現的呢?像以前介紹函數GetMessage裏是使用一個循環不斷地檢測消息,周止復始的,是不可能出現死亡的,但它會檢測到消息WM_QUIT就退出來。那現在問題是誰發送WM_QUIT消息出來呢?這就是PostQuitMessage函數所做的工作。當你點擊窗口右上角的關閉時,Windows就會把窗口從系統裏刪除,這時就會發出消息WM_DESTROY給窗口消息處理函數WindowProcWindowProc收到這條消息後,最需要做的一件事情就是調用
PostQuitMessage發出退出消息,讓消息循環結束。 函數PostQuitMessage聲明如下: WINUSERAPI VOID WINAPI PostQuitMessage( __in int 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 int wmId, wmEvent; #009 PAINTSTRUCT ps; #010 HDC hdc; #011 #012 switch (message) #013 { #014 case WM_COMMAND: #015 wmId = LOWORD(wParam); #016 wmEvent = HIWORD(wParam); #017 // 菜單選項命令響應: #018 switch (wmId) #019 { #020 case IDM_ABOUT: #021 DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
#022 break; #023 case IDM_EXIT: #024 DestroyWindow(hWnd); #025 break; #026 default: #027 return DefWindowProc(hWnd, message, wParam, lParam); #028 } #029 break; #030 case WM_PAINT: #031 hdc = BeginPaint(hWnd, &ps); #032 // #033 EndPaint(hWnd, &ps); #034 break; #035 case WM_DESTROY: #036 PostQuitMessage(0); #037 break; #038 default: #039 return DefWindowProc(hWnd, message, wParam, lParam); #040 } #041 return 0; #042 } 36行就是調用函數PostQuitMessage來處理退出應用程序。

再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!https://blog.csdn.net/jiangjunshow

Windows API一日一練 15 PostQuitMessage函數