admin管理员组文章数量:1389872
I am using a global mouse hook (WH_MOUSE_LL
) to detect left mouse clicks on a specific button in another application. The detection works fine when clicking within the main area of the button, but it becomes inaccurate when I click on the button's border.
bool leftButtonDown = false;
HWND clickedHandle = nullptr;
LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode < 0)
{
return CallNextHookEx(nullptr, nCode, wParam, lParam);
}
auto pMouseStruct = reinterpret_cast<MSLLHOOKSTRUCT*>(lParam);
if (pMouseStruct == nullptr)
{
return CallNextHookEx(nullptr, nCode, wParam, lParam);
}
switch (wParam)
{
case WM_LBUTTONDOWN:
leftButtonDown = true;
clickedHandle = WindowFromPoint(pMouseStruct->pt);
break;
case WM_LBUTTONUP:
if (leftButtonDown)
{
HWND releaseHandle = WindowFromPoint(pMouseStruct->pt);
if (clickedHandle == (HWND)0x00310716 && clickedHandle == releaseHandle)
{
std::cerr << "Button clicked" << '\n';
}
}
leftButtonDown = false;
break;
default:
break;
}
return CallNextHookEx(nullptr, nCode, wParam, lParam);
}
本文标签: winapiHow to check click button handle CStack Overflow
版权声明:本文标题:winapi - How to check click button handle C++? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744704927a2620784.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论