LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
WndProc是窗口過程的名稱,可以自由定義,不過爲了便於理解可以按照默認定義,這四個參數與消息的前四個域是相同的
hwnd:標識哪個窗口句柄需要調用窗口過程
message:標識hwnd窗口要處理的消息
wParam:一個32位的消息參數,其含義和數值根據消息的不同而不同
lParam:一個32位的消息參數,其值與消息有關
注意:程序通常不直接調用窗口過程,一般有windows本身調用,通過SendMessage函數可以讓程序直接調用窗口過程
//註解:
GetMessage(&msg,NULL,0,0);//從消息隊列獲取消息,第二三四個參數表示獲取的消息種類,設置爲NULL或者0表示接收任何消息
TranslateMessage(&msg);//將消息傳給Windows,進行一些鍵盤轉換
DispatchMessage(&msg);//將消息傳回給Windows,Windows將該消息發給適當的窗口過程,調用窗口過程進行處理
消息的定義:
#ifndef NOMSG
/*
* Message structure
*/
typedef struct tagMSG {
HWND hwnd;//消息發向的窗口的句柄
UINT message;//消息標識符,每一條消息都會有一個對應的標識符
WPARAM wParam;//一個32位的消息參數,其含義和數值根據消息的不同而不同
LPARAM lParam;//一個32位的消息參數,其值與消息有關
DWORD time;//消息放入隊列的時間
POINT pt;//消息放入隊列時的鼠標座標
#ifdef _MAC
DWORD lPrivate;
#endif
} MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG;
來源:《windows程序設計》