wparam和lparam的思考

轉載地址:http://www.cnblogs.com/magic-cube/archive/2011/04/27/2029913.html


首先看看定義:

1
2
3
4
typedef unsignedint        UINT;
typedef UINT WPARAM;//就是無符號整形
typedef long LONG;
typedef LONG LPARAM;//就是長整形

這就是所謂的wparam和lparam,從定義我們可以看出lparam比wparam要長,所以習慣上都用wparam來存儲消息類型,而用lparam來存儲要傳遞的參數,當然它的類型隨着消息的不同而變化:如發送一個WM_LBUTTONDOWN消息,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SendMessage針對鼠標消息中wParam和lParam參數
SendMessage(Hwnd, WM_LBUTTONDOWN, wparam, lparam);
SendMessage(Hwnd, WM_LBUTTONUP, wparam, lparam); 
    
wParam //消息類型 
MK_CONTROL   Set if the ctrl key is down.   
MK_LBUTTON   Set if the left mouse button is down.   
MK_MBUTTON   Set if the middle mouse button is down.   
MK_RBUTTON   Set if the right mouse button is down.   
MK_SHIFT     Set if the shift key is down.   
    
lParam //傳遞參數
xPos = LOWORD(lParam);     //horizontal position of cursor   
yPos = HIWORD(lParam);     //vertical position of cursor
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章