GetWindowRect вернуть 0 RECT из меню Пуск при открытии - PullRequest
1 голос
/ 17 августа 2011

Моя проблема в том, что когда открывается меню «Пуск» (я получил EVENT_OBJECT_FOCUS через WinEventHook), GetWindowRect обычно возвращает {0,0,0,0} RECT и возвращается без ошибок.

Я сделалтестовый код для него (запускается до тех пор, пока я не нажму на кнопку «Пуск», затем остановится с «Got {0,0,0,0}» (8 раз из 10, 2 раза он продолжает работать))

Как я могугарантировать, что GetWindowRect всегда возвращает действительные данные?

HWND hwnd = FindWindow(NULL, L"Start menu");
for (int cnt = 1; ; ++cnt)
{
    RECT r = {0,0,0,0};
    if(GetWindowRect(hwnd, &r))
    {
        if (r.left == 0 && r.top == 0 && r.right == 0 && r.bottom == 0)
        {
            cout << cnt << ": Got {0,0,0,0}";
            break;
        }
        else
        {
            cout << cnt << ": Ok" << endl;
        }
    }
    else
    {
        cout << cnt << ": Call failed!";
        break;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...