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

实例:

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);
	}

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


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值