我的问题是当开始菜单打开时(我通过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;
}
}