使用GetWindowTextW从编辑控件

时间:2018-01-09 20:54:40

标签: c++ visual-studio winapi internationalization

我将VisualStudio项目设置为“使用多字节字符集。这是一个较旧的代码库,通常我可以使用各种功能的”W“版本来解决。但是我遇到了试图从编辑控件中获取希伯来字符串的问题。无论我尝试什么,我都会得到问号。

E.g。

int textLen = GetWindowTextLengthW(chatBoxHwnd);
wchar_t* buffw = new wchar_t[textLen + 1];  
GetWindowTextW(chatBoxHwnd, buffw, textLen + 1);

但是当我尝试使用buff(例如用MessageBoxW显示它)时,我仍然会收到问号。

1 个答案:

答案 0 :(得分:0)

所以解决方案是使用Unicode版本来创建编辑控件本身(CreateWindowExW vs CreateWindowEX)以及围绕它的辅助函数(SendMessageW,SetWindowLongPtrW等...) 之后,我能够成功地使用上面的代码从编辑框中提取希伯来语(和其他语言)。

特别感谢这篇文章How to create a unicode window in a non-unicode application