天天看點

Windows程式内部運作機制

1、消息與隊列(在windows中,使用者程式可以調用系統的API函數,系統也可以調用使用者程式,這是調用時通過消息來進行的。)

(1)消息

MSG結構體定義:

typedef  struct  tagMSG

{

HWND hwnd;              //消息所屬視窗

UINT  message;            //消息辨別符(WM_XXX宏)

WPARAM  wParam;        //消息附加說明

LPARAM   lParam;        //消息附加說明

DWORD   time;           //消息投遞到應用程式隊列的時間

POINT     pt;             //滑鼠目前位置

}MSG;

(2)消息隊列

Windows運作機制:例如按下滑鼠左鍵,産生WM_LBUTTONDOWN消息,系統會将此消息放到視窗所屬的應用程式消息隊列中,等待應用程式處理(windows會依次将産出的消息放入消息隊列)。應用程式通過消息循環不斷從隊列中取出消息并進行響應。

(3)Windows中包含進隊和不進隊消息。

2、Winmian函數

Windows 應用程式消息處理過程:

(1)作業系統接收應用程式的視窗消息,将消息投放到應用程式的消息隊列中。

(2)應用程式在消息循環中調用GetMessage函數從隊列中取出消息,然後進行一些處理。例如TranslateMessage産生新的消息。

(3)應用程式調用DispatchMessage将消息回傳給作業系統。

系統利用WNDCLASS結構體中lpfnWndProc成員儲存的視窗過程函數指針調用視窗過程函數,對消息進行處理。

本文轉自 韬光星夜 51CTO部落格,原文連結:http://blog.51cto.com/xfqxj/476984,如需轉載請自行聯系原作者

下一篇: 簡單繪圖

繼續閱讀