Windows應用程式的訊息處理機制

sanqima發表於2014-06-18

(1)作業系統接收到應用程式的視窗訊息,將訊息投遞到該應用程式的訊息佇列中。

(2)應用程式在訊息迴圈中呼叫GetMessage函式從訊息佇列中取出一條一條的訊息。

       取出訊息後,應用程式可以對訊息進行一些預處理,例如,放棄對某些訊息的響應,或者呼叫TranslateMessage產生新的訊息。

(3)應用程式呼叫DispatchMessage,將訊息回傳給作業系統。

       訊息是由MSG結構體物件來表示的,其中就包含了接收訊息的視窗的控制程式碼。因此,DispatchMessage函式總能進行正確的傳遞

(4)系統利用WNDCLASS結構體的lpfnWndProc成員儲存的視窗過程函式的指標呼叫視窗過程,對訊息進行處理(“即系統給應用程式傳送了訊息”)。

流程圖如下:

相關文章