检查鼠标LButton是跌?(Check if Mouse LButton is down?)

2019-09-23 15:32发布

如何检查我的鼠标左键当前按下/拖动的东西(我preffer第一种可能性)。

我试过Mouse.IsDraging,但没有结果。

注:我处理的鼠标消息在我的应用程序,以便它没有问题,如果它是一个WM,只是共享的方式来完成我的任务。

Answer 1:

有一个Windows API函数GetAsyncKeyState()但它的名称也可用于获取鼠标按钮的状态。 链接的文档包含直接回答你的问题:

GetAsyncKeyState功能可与鼠标按钮。 然而,它会检查在物理鼠标按钮的状态,而不是在该物理按钮被映射到逻辑鼠标按钮。 例如,呼叫GetAsyncKeyState(VK_LBUTTON)总是返回左物理鼠标按钮的状态,不管它是否被映射到左边或右边的逻辑鼠标按钮。 你可以通过调用确定系统的当前物理鼠标的按键逻辑鼠标按键映射GetSystemMetrics(SM_SWAPBUTTON)返回TRUE如果鼠标按钮已被调换。

结果类型是short ,检查最显著位只是测试值是否为负。



Answer 2:

OnMouseMove(UINT nFlags, CPoint point)
{
  m_LButtonPressed=nFlags & MK_LBUTTON;
  CWnd::OnMouseMove(nFlags, point);
} 


文章来源: Check if Mouse LButton is down?
标签: delphi mouse