我如何知道何时创建窗口?

时间:2016-03-25 22:12:39

标签: c windows winapi

如何检查窗口是否已创建?我试过这个

BOOL isWindowReady = FALSE;
while(!isWindowReady)
{
    hwnd = FindWindow(windowClass, NULL);
    if (hwnd == NULL) {
        hwnd = FindWindow(windowClass, NULL);
    }
    else {
        isWindowReady = TRUE;
    }
}

但是id不起作用。

1 个答案:

答案 0 :(得分:1)

您的代码在技术上很好(尽管您对FindWindow()的第二次调用是多余的) - 前提是您为windowClass提供了正确的值,即。

话虽这么说,你的循环可以简化:

while (!FindWindow(windowClass, NULL)) { Sleep(100); }

或者,如果您稍后需要HWND来访问该窗口:

HWND hWindow;
do
{
    hWindow = FindWindow(windowClass, NULL);
    if (hWindow) break;
    Sleep(100);
}
while (true);