我编写的程序需要使用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中怎么都不行,郁闷了好久。请求帮助!!!