如何檢查鼠標的左鍵是否正在按下/拖動某些東西(我首先提供了第一種可能性)。檢查鼠標LButton是否關閉?
我試過Mouse.IsDraging,但沒有結果。
注意:我在我的應用程序中處理鼠標消息,所以它沒有問題,如果它是一個WM,只是分享一種方式來完成我的任務。
如何檢查鼠標的左鍵是否正在按下/拖動某些東西(我首先提供了第一種可能性)。檢查鼠標LButton是否關閉?
我試過Mouse.IsDraging,但沒有結果。
注意:我在我的應用程序中處理鼠標消息,所以它沒有問題,如果它是一個WM,只是分享一種方式來完成我的任務。
有一個Windows API函數GetAsyncKeyState()
,儘管它的名字也可用於獲取鼠標按鈕的狀態。鏈接的文檔直接包含您的問題的答案:
該
GetAsyncKeyState
函數與鼠標按鈕一起使用。但是,它檢查物理鼠標按鈕的狀態,而不是物理按鈕映射到的邏輯鼠標按鈕。例如,呼叫GetAsyncKeyState(VK_LBUTTON)
總是返回左側物理鼠標按鈕的狀態,而不管它是否映射到左側或右側的邏輯鼠標按鈕。通過調用GetSystemMetrics(SM_SWAPBUTTON)
可以確定系統當前物理鼠標按鈕到邏輯鼠標按鈕的映射,如果鼠標按鈕已被交換,則返回TRUE
。
結果類型爲short
,檢查最重要的位,只是測試值是否定的。
OnMouseMove(UINT nFlags, CPoint point)
{
m_LButtonPressed=nFlags & MK_LBUTTON;
CWnd::OnMouseMove(nFlags, point);
}
可能重複[德爾福:如何檢查是否有任何鼠標按鈕被按下 - 鼠標事件外?](http://stackoverflow.com/questions/25681543/delphi-how-can-i - 檢查 - 如果任何鼠標按鈕被按下 - 鼠標之外的ev) – Johan 2016-02-03 20:26:37