• 5002阅读
  • 1回复

在Qt中调用Win32API,给其他程序的Edit控件发送WM_SETTEXT消息,出现乱码[急需帮助!] [复制链接]

上一主题 下一主题
离线luckyyoung
 

只看楼主 倒序阅读 楼主  发表于: 2011-10-12


我编写的程序需要使用WIN32API给其他窗口发送消息。
我在main()里添加了:
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB2312"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));
这样就支持中文了。
然后用如下语句,将QString转换为char*:
QByteArray t1=filePath.toLocal8Bit();
char *_filePath=t1.data();
qDebug()<<"char* _filePath: "<<_filePath<<endl;//运行时,在QtCreator的application output中显示的_filePath是正确的中文字符。
可是当我调用::SendMessage(childHWND_ComboBoxEx32,WM_SETTEXT,0,(LPARAM)_filePath);给ComboBoxEx32控件发送消息时,控件中得到的就是乱码
我在VC中测试过,ComboBoxEx32中得到的是正确的中文字符。
可是在Qt中怎么都不行,郁闷了好久。请求帮助!!!
Anything is possible!
离线luckyyoung

只看该作者 1楼 发表于: 2011-10-12
问题已解决:)
将SendMessage改为SendMessageA就可以了。再次感谢dbzhang800!
Anything is possible!
快速回复
限100 字节
 
上一个 下一个