前言
事件驅動模型和過程驅動模型
過程驅動(主動):
採用警覺式者主動去輪詢 ( polling),行爲取決於自身的觀察判斷
事件驅動(被動)
採用託付式者被動等通知 (notification),行爲取決於外來的突發事件
如果把整個過程看作一個生命體:
入口函數(main)–>生命誕生
窗口–>軀幹
消息循環–>心臟(不斷帶動血液[消息]循環)
窗口過程–>大腦
窗口過程是一個大的選擇過程
響應部分消息來實現特定功能,未處理的消息交還給操作系統
Windows API中消息的定義
操作系統是怎樣將感知到的事件傳遞給應用程序 的呢?這是通過消息機制(Message)來實現的。操作系統將每個事件都包裝成一個稱爲消息的結構體MSG來傳遞給應用程序,參看MSDN。
MSG結構定義如下:
typedef struct tagMSG{
HWND hwnd; //窗口句柄
UINT message; //unsigned int
WPARAM wParam; //unsigned int
LPARAM lParam; //long int
DWORD time;
POINT pt; //座標
}MSG;
typedef int WIDTH
typedef int HEIGHT
WIDTH x;
HEIGHT y;
API中對數據類型的宏定義:
讓數據類型具備語義信息,從變量的類型就可以區分變量的用途。