WM_LBUTTONDOWN

WM_LBUTTONDOWN

WM_LBUTTONDOWN是一個計算機函式,功能是訊息當用戶在window客戶區域點擊滑鼠左鍵的時候傳送。如果當前滑鼠沒有被捕捉,訊息傳送給滑鼠下面的window窗體。否則,訊息傳送給當前捕捉滑鼠訊息的方法。

基本介紹

  • 中文名:WM_LBUTTONDOWN
  • 語法:wParam
  • 接收方法:通過WindowProc函式接收
  • 注意:不能使用GetAsyncKeyState
簡介,語法,其他,備註,參數,

簡介

window窗體通過WindowProc函式接收此訊息。

語法

wParam

其他

指示是否其它鍵被按下。此參數可以是以下的值:
MK_CONTROL
鍵盤CTRL鍵被按下。
MK_LBUTTON
滑鼠左鍵被按下。
MK_MBUTTON
滑鼠中鍵被按下。
MK_RBUTTON
滑鼠右鍵被按下。
MK_SHIFT
鍵盤SHIFT鍵被按下。
MK_XBUTTON1
Windows 2000/XP: The first X button is down.
MK_XBUTTON2
Windows 2000/XP: The second X button is down.lParamlParam
位元組表示游標的X坐標,坐標是相對於客戶區域的左上角。高位元組表示游標的Y坐標,坐標是相對於客戶區域的左上角。返回值
如果程式處理了這個訊息,返回0。

備註

使用以下代碼獲取游標的坐標:
1.xPos = GET_X_LPARAM(lParam);
2.yPos = GET_Y_LPARAM(lParam);
以上代碼需要使用ATL庫,定義在windowsx.h中您也可以使用MAKEPOINTS宏轉換lParam參數到POINTS結構。
請注意,如下方法:
1.xPos = LOWORD(lParam);
2.yPos = HIWORD(lParam);
即使用LOWORD和HIWORD來獲取坐標是不合適的,參考MSDN中對GetMessagePos函式的一段說明:Important Do not use the LOWORD or HIWORD macros to extract the x- and y- coordinates of the cursor position because these macros return incorrect results on systems with multiple monitors. Systems with multiple monitors can have negative x- and y- coordinates, and LOWORD and HIWORD treat the coordinates as unsigned quantities.簡要翻譯:不要使用LOWORD或HIWORD宏來獲取滑鼠位置,因為這兩個宏在多顯示器的系統中返回不正確的值。在多顯示器的系統中可能會有負值的x和y軸的坐標,但LOWORD和HIWORD將坐標視為非負數。追根溯源,通過這幾個宏的定義我們能夠更好地理解這個問題:

相關詞條

熱門詞條

聯絡我們