【发布时间】:2017-07-25 03:04:24
【问题描述】:
我创建了一个执行简单任务的 Win32 控制台应用程序:它枚举所有窗口的标题。一切都很好,除了一点——“非英语”标题返回为“GDI+ Window”。
我不知道如何以正确的方式检索此类字幕。
例如,我有一个带有标题的窗口:Hello Мир。但是,GetWindowTextW 返回“Hello GDI+ 窗口”
有我的程序代码(简体):
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
谢谢!
【问题讨论】:
-
我认为你的例子有点太简单了。编译的东西怎么样?对于奖励积分,您可以让它创建一个显示问题的窗口。
-
我必须填写空白,但这是一个消息框的屏幕截图,该消息框基本上由您的程序生成,您提供的字符串用作记事本中的文件名。我会说问题存在于您没有显示的代码或您没有描述的具体情况..imgur.com/a/h01pn
-
stackoverflow.com/questions/29527078/… 的可能重复项,因为他正在使用 wprintf 并且可能没有将控制台的语言环境设置为 UTF8 或类似的可以处理宽字符的东西 - 将其写入文件可能会起作用。
标签: c++ windows visual-c++