WM_LBUTTONDOWN //鼠標左鍵按下消息
WM_LBUTTONUP //鼠標左鍵彈起消息參數和按下一樣
當用戶在窗口的客戶區域中按住鼠標左鍵時,會發布WM_LBUTTONDOWN消息。如果未捕獲鼠標,則該消息會發布到光標下方的窗口中。否則,消息將發布到已捕獲鼠標的窗口。 WM_LBUTTONDOWN fwKeys = wParam; //鍵標志 xPos = LOWORD(lParam); //光標的水平位置 yPos = HIWORD(lParam); //光標的垂直位置 參數 【fwKeys】 在【wParam中】標識按下的鍵值。此參數可以是以下值的任意組合: 值 描述 MK_CONTROL 標識CTRL鍵按下。 MK_LBUTTON 標識左鍵按下. MK_MBUTTON 標識中鍵按下。 MK_RBUTTON 標識右鍵按下。 MK_SHIFT 標識SHIFT鍵按下. 【XPOS】 【lParam的】的低位字節的值。指定光標的x坐標。坐標相對於客戶區域的左上角。 【yPos】 【lParam的】的高字節的值。指定光標的y坐標。坐標相對於客戶區域的左上角。 返回值 如果應用程序處理此消息,則應返回零。 備注 應用程序可以使用MAKEPOINTS宏將【lParam的】參數轉換為POINTS結構。
實例:
case WM_LBUTTONDOWN: return OnLButtonDown(hWnd,(UINT)wParam, POINT{ LOWORD(lParam),HIWORD(lParam) }); LRESULT OnLButtonDown(HWND hWnd,UINT nFlags, POINT pos) { if (pos.x >= m_splitterPos - 10 && pos.x <= m_splitterPos + 10) { m_IsSplit = TRUE; //標識可以拖拽 /*SetCursor(m_hCursor); SetCapture(hWnd);*/ } return 0; }
LRESULT OnLButtonUp(HWND hWnd, UINT nFlags, POINT pos) { if (m_IsSplit) { m_IsSplit = FALSE; //標識不可拖拽 ReleaseCapture(); } return 0; }