2016001 WM_CHAR消息,中文乱码问题的解决方案

来源:互联网 发布:手机淘宝旺旺id是什么 编辑:程序博客网 时间:2024/05/18 00:34

实例:

A程序需要向外部B程序发文本消息, B程序是外部已存在的,无法修改.

测试发送WM_CHAR消息,英文和数字都能成功, 但是发送中文就是很奇怪的乱码.


原因:

如果字符是汉字(或其它文字如韩文,日文等等),则该字符对应的虚拟键盘码高位不为0,这样得到的字符就是不正确的。


解决方案:

要发送的字符和 0xFF 做与操作即可.


示例代码:

<span style="white-space:pre"></span>CString m_strMsg = _T("测试,你好!");<span style="white-space:pre"></span>m_strMsg += _T(" \r\nQQ助手.\r\nBy shortCoder QQ:981455795");for(i=0;i<m_strMsg.GetLength();i++){::PostMessage(m_hQQ/*目标窗体的句柄*/,WM_CHAR,m_strMsg.GetAt(i) & 0xFF,0);}

示例为部分代码,请合理参考.


0 0