WinProc窗口過程定義函數解析-【學習札記】

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程序設計》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章