1.基於事件驅動,封裝成訊息,放到訊息佇列中。
2.應用程式要硬體做事,就叫用作業系統的API(功能函數)。
3.作業系統將感知到的事件交給應用程式處理,處理過程就是訊息響應。
4.作業系統怎樣將感知到的事件傳遞給應用程式?----訊息機制(Message)實現。
5.作業系統將每一個事件封裝成一個結構體MSG(訊息)來傳遞給應用程式。
功能函數;
typedef struct tagMSN{
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
}MSG;
Tip:
使用者對電腦輸入裝置進行動作產生事件;
作業系統感知事件,並按預先對這個事件定義好的結構體MSG(訊息)樣式進行封裝,再傳遞給應用程式;
應用程式對接收到的的結構體MSG(訊息)進行處理,叫用作業系統的API,讓作業系統驅動電腦進行工作;
作業系統通過結構體MSG和使用者互動
控制代碼
控制代碼就是資源的標識
視窗,表徵圖,
宏
WM(Windows Message)開頭
從變數和變數的類型來區分變數的用途
訊息佇列
每一個應用程式,作業系統都會給它建立一個訊息佇列;
訊息佇列是先進行出的緩衝區,它是某種變數類型的數組,訊息佇列數組中的每一個元素都是一條訊息,
作業系統將產生的每一個訊息按先後順序放進訊息佇列裡;
應用程式總是取走第一條訊息,訊息佇列中的訊息依次前移;
應用程式取得訊息後就知道使用者的操作和程式的變化;
應用程式就對取得的訊息進行處理,即訊息響應,這是通過編碼實現的,即windows程式
主要的代碼區,使用者就針對收到的訊息編寫特定的代碼進行訊息響應;
在使用者編寫代碼的過程中,又會調用其它Windows API;
Tip:
作業系統通過訊息機制將事件放在訊息佇列中,等待應用程式來取;
應用程式取得事件進行處理(訊息響應),這個處理過程就需要使用者對事件編寫代碼,
叫用作業系統API實現相應的功能;
Tip:
掌握訊息本身,不同的訊息代表使用者操作和程式狀態;
掌握作業系統API,對特定的訊息,要讓作業系統執行特定的功能去響應這個訊息;