EnumWindows无法检测到窗口

时间:2018-10-02 05:33:42

标签: c++ windows winapi window

我正在尝试使用EnumWindows打印所有可见窗口的标题。

起初它是工作的,每次EnumWindows调用时,EnumWindows多次调用回调函数createWindow()。但是没有添加任何有意义的代码,它就停止了工作,现在只用一个不可见窗口的句柄调用一次createWindow()。

这是我的代码:

int main()
{
    int row = 2;
    int col = 2;

    vector<Window> detectedWindows((row * col) + 4);

    EnumWindows(&createWindow, (LPARAM)&detectedWindows);
}

BOOL CALLBACK createWindow(HWND input, LPARAM storage)
{
    if (IsWindowVisible(input))
    {
        TCHAR titleTchar[30];

        GetWindowText(input, titleTchar, 30);

        wcout << titleTchar << endl;

        CString titleCstr = titleTchar;
        CT2CA converting(titleCstr);
        string title(converting);

        cout << title << endl;
    }
    return 0;
}

没有记录的错误消息。 GetLastError返回0。

1 个答案:

答案 0 :(得分:4)

您的回调函数返回FALSE,因此EnumWindows()停止枚举窗口。让它返回TRUE