Я использую глобальный крючок для мыши (wh_mouse_ll), чтобы обнаружить левую мышь нажимать на конкретную кнопку в другом приложении. Обнаружение работает нормально, когда нажимает в основной области кнопки, но оно становится неточным, когда я нажимаю на границу кнопки. Описание изображения здесь? < /p>
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(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
Подробнее здесь: https://stackoverflow.com/questions/795 ... n-handle-c