GetWindowRect在打开时从开始菜单返回0 RECT

时间:2011-08-17 09:12:00

标签: c++ windows winapi

我的问题是当开始菜单打开时(我通过WinEventHook获得了EVENT_OBJECT_FOCUS),GetWindowRect通常返回{0,0,0,0} RECT并返回没有错误。

我为它制作了一个测试代码(运行直到我点击开始按钮然后停止“Got {0,0,0,0}”(10次8次,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;
    }
}

0 个答案:

没有答案