检查Mouse LButton是否已关闭?

Iva*_*nov 5 delphi mouse

如何检查我的鼠标左键当前是否按下/拖动某些东西(我预先设置了第一种可能性).

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

注意:我在我的应用程序中处理鼠标消息,所以如果它是一个WM,它没有问题,只是分享一种方法来完成我的任务.

mgh*_*hie 20

有一个Windows API函数GetAsyncKeyState(),尽管它的名称也可用于获取鼠标按钮的状态.链接的文档直接包含您的问题的答案:

GetAsyncKeyState功能适用于鼠标按钮.但是,它会检查物理鼠标按钮的状态,而不是物理按钮映射到的逻辑鼠标按钮.例如,GetAsyncKeyState(VK_LBUTTON)无论是否映射到左或右逻辑鼠标按钮,调用始终返回左物理鼠标按钮的状态.您可以通过调用在交换鼠标按钮时GetSystemMetrics(SM_SWAPBUTTON)返回的内容来确定系统的物理鼠标按钮到逻辑鼠标按钮的当前映射TRUE.

结果类型是short,检查最重要的位,只测试值是否为负.