如何正确获取Unicode窗口标题

时间:2017-07-25 03:04:25

标签: c++ windows visual-c++

我创建了一个执行简单任务的Win32控制台应用程序:它枚举所有窗口的标题。除了一点之外,一切都运作良好 - “非英语”标题作为“GDI + Window”返回。

我不知道如何以正确的方式检索这些字幕。

例如,我有一个带有标题的窗口:HelloМир。但是,GetWindowTextW返回“Hello GDI + Window”

有我的程序代码(简化):


    BOOL CALLBACK nextWindow ( HWND window, LPARAM param )
    {
        int i = GetWindowTextW ( ... );
        wprintf ( ... );
        return true;
    }

    int main ()
    {
        WNDENUMPROC func = &nextWindow;
        LPARAM someValue = 0;

        BOOL result = EnumWindows ( func, someValue );
        return 0;
    }

有我的项目设置: Visual Studio Project Settings

谢谢!

1 个答案:

答案 0 :(得分:0)

谢谢你们,你们最有帮助!

就我而言,我只需要使用以下代码更改翻译模式:


    _setmode ( _fileno ( stdout ), _O_U8TEXT );

请参阅Michael S. Kaplan文章中的详细信息。

问题解决了。