1. 程式人生 > >Windows API一日一練 14 DispatchMessage函式

Windows API一日一練 14 DispatchMessage函式

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

                前面已經介紹從系統佇列裡獲取一條訊息,然後經過快捷鍵的函式檢查,又通過字元訊息函式的轉換,最後要做的事情就是呼叫 DispatchMessage 函式,它的意思就是說要把這條訊息傳送到窗口裡的訊息處理函式
WindowProc   函式 DispatchMessage 宣告如下: WINUSERAPI LRESULT WINAPI DispatchMessageA(     __in CONST MSG *lpMsg); WINUSERAPI LRESULT WINAPI DispatchMessageW(     __in CONST MSG *lpMsg);
#ifdef UNICODE #define DispatchMessage DispatchMessageW #else #define DispatchMessage DispatchMessageA #endif // !UNICODE   lpMsg 是指向想向訊息處理函式 WindowProc 傳送的訊息。   呼叫這個函式的例子如下: #001 //
主程式入口 #002 // #003 //  蔡軍生  2007/07/19 #004 // QQ: 9073204 #005 // #006 int APIENTRY _tWinMain(HINSTANCE hInstance, #007                       HINSTANCE hPrevInstance, #008                       LPTSTR    lpCmdLine, #009                       int       nCmdShow) #010 { #011  UNREFERENCED_PARAMETER(hPrevInstance); #012  UNREFERENCED_PARAMETER(lpCmdLine); #013  #014   // #015  MSG msg; #016  HACCEL hAccelTable; #017  #018  // 載入全域性字串。 #019  LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); #020  LoadString(hInstance, IDC_TESTWIN, szWindowClass, MAX_LOADSTRING); #021  MyRegisterClass(hInstance); #022  #023  // 應用程式初始化 : #024  if (!InitInstance (hInstance, nCmdShow)) #025  { #026         return FALSE; #027  } #028  #029  hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_TESTWIN)); #030  #031  // 訊息迴圈 : #032  BOOL bRet; #033  while ( (bRet = GetMessage(&msg, NULL, 0, 0)) != 0) #034  { #035         if (bRet == -1) #036         { #037               // 處理出錯。 #038  #039         } #040         else if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) #041         { #042               TranslateMessage(&msg); #043               DispatchMessage(&msg); #044         } #045  } #046  #047  return (int) msg.wParam; #048 } #049    43 行就是呼叫函式 DispatchMessage 傳送訊息。            

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述