使用WM_PASTE 和 WM_CHAR 消息时中文乱码总结
当我们需要设置编辑框显示文本的时候,如果其它方式无法实现,可以试试WM_PASTE 和 WM_CHAR。
但使用这两种消息很容易出现中文乱码的情况,这一般是编码问题,可参考如下几点:
1,中文应采用UNICODE编码。
2,WM_PASTE关键点在于粘贴板数据的设置:
1,SetClipboardData 的数据格式应该设置为 CF_UNICODETEXT
2,GlobalAlloc 最好设置为 GMEM_MOVEABLE, 并且cpy字符串时要使用unicode编码字符串。
3,WM_CHAR关键点:
1,原始字符串unicode类型
2,取出要发送的中文的时候直接取出完整汉字,不要按位。一个汉字只需要SendMessage一次!不要被抄来抄去的文章给忽悠了。
4,当然,其实首先要确定英文是正常的。也就是程序本身没有写错哦
示例代码:
WM_PASTE 前的粘贴板设置函数
void SetClipBoardText(TCHAR *szText)
{
if (::OpenClipboard(GetSafeHwnd()) && ::EmptyClipboard())
{
int iBufLen = lstrlen(szText);
HGLOBAL hMem = GlobalAlloc( GMEM_MOVEABLE, iBufLen + );;
char *pMem;
if(hMem)
{
pMem = (char*)GlobalLock(hMem);
memcpy_s(pMem,iBufLen, szText, iBufLen);
GlobalUnlock(hMem);
EmptyClipboard();
SetClipboardData(CF_UNICODETEXT,hMem);
}
CloseClipboard();
}
}
WM_CHAR的使用demo:
CString strFull = L"今天天气不错333333";
HWND hwWeb = (HWND)0x0013044E; for(int i= ; i< strFull.GetLength() ; i++)
{
PostMessage(hwWeb,WM_CHAR,strFull[i] ,);
}
使用WM_PASTE 和 WM_CHAR 消息时中文乱码总结的更多相关文章
- SpringMVC学习系列-后记 解决GET请求时中文乱码的问题
SpringMVC学习系列-后记 解决GET请求时中文乱码的问题 之前项目中的web.xml中的编码设置: <filter> <filter-name>CharacterEnc ...
- curl提交数据时中文乱码
1.使用curl提交数据时中文乱码解决: <?php $testJSON=array('name'=>'中文字符串','value'=>'test'); foreach ( $tes ...
- maven测试时中文乱码问题解决方法
pom.xml增加-Dfile.encoding=UTF-8配置,如下: <plugin> <!--升级到新版本解决控制台乱码问题--> <groupId>org. ...
- Mybatis新增mysql时中文乱码
Mybatis新增mysql时中文乱码 1.设置数据库连接的编码(jdbc.properties) jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:my ...
- 使用PLSQL Developer时中文乱码问题
使用PLSQL Developer时中文乱码问题 一.问题: 执行一些查询结果有中文的SQL语句,显示不了中文,显示???. 二.产生的原因: 客户端与服务器端的编码不一致造成的. 三.解决方案: 1 ...
- mysql 恢复数据时中文乱码
mysql恢复数据时中文乱码,解决办法. 用source命令导入mysql数据库怎么设置中文编码 1.导出数据时指定编码在导出mysql sql执行文件的时候,指定一下编码格式: mysqldump ...
- jquery中使用serialize() 序列化表单时 中文乱码问题
序列化中文时之所以乱码是因为.serialize()调用了encodeURLComponent方法将数据编码了 解决方法就是进行解码 1 原因:.serialize()自动调用了encodeURICo ...
- Mybatis + Mysql 插入数据时中文乱码问题
近日跟朋友一起建立一个项目,用的是spring+mybatis+mysql. 今天碰到一个mybatis向mysql中插入数据时,中文显示为'???'的问题,拿出来说下. 对于数据库操作中出现的中文乱 ...
- [转]解决GET请求时中文乱码的问题
原文地址:http://www.cnblogs.com/liukemng/p/4178882.html 之前项目中的web.xml中的编码设置: <filter> <filter-n ...
随机推荐
- BZOJ 1051: [HAOI2006]受欢迎的牛 缩点
1051: [HAOI2006]受欢迎的牛 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/ ...
- 根据字符串创建FTP本地目录 并按照日期建立子目录返回路径
/** * 根据字符串创建FTP本地目录 并按照日期建立子目录返回 * @param path * @return */ private String getFolder(String path) { ...
- MultiCardMenu
https://github.com/wujingchao/MultiCardMenu MultiCardMenu-master.zip
- Proteus仿真_01、 8086 IO译码仿真
最近在学习一些微机原理与接口技术方面的知识. 参考书籍<微机原理与接口技术---基于8086Proteus仿真> 顾晖 梁惺彦 编著 实验一.利用8086 芯片来实现对I/O设备的读取和控 ...
- PHP 更高效的字符长度判断方法(转)
今天看到有人说,在做字符串长度判断的时候,有个比strlen效率更高的方法.即: $str = ‘aaaaaa’; ) VS }) 晚上自己用例子简单测试下,情况基本属实,特此记录下.后者效率几乎是前 ...
- android142 360 分页加载
dao: package com.itheima.mobileguard.db.dao; import java.util.ArrayList; import java.util.List; impo ...
- mysql 面试
数据库的重要性是所有技术里最核心最需要掌握的(理解原理,并且被面试时能清晰的表达出来),直接决定运维人员薪水的高低! 所有题都要给出专业的解答方案,不是很水的那种泛泛的解答. 面试题001:什么是My ...
- Cordova 3.0 Plugin 安装 及"git" command line tool is not installed
根据http://docs.phonegap.com/en/edge/guide_cli_index.md.html#The%20Command-line%20Interface Windows命令行 ...
- Computer Science Theory for the Information Age-3: 高维空间中的高斯分布和随机投影
高维空间中的高斯分布和随机投影 (一)在高维球体表面产生均匀分布点的方法 我们来考虑一个采样问题,就是怎样在高维单位球体的表面上均匀的采样.首先,考虑二维的情况,就是在球形的周长上采样.我们考虑如下方 ...
- 通用PE u盘装Ghost Win7系统
http://www.tongyongpe.com/win7ghost.html 导读 通用pe工具箱是现在最老牌的的U盘装系统和维护电脑的专用工具之一,一键式制作.操作简单便捷,几乎100%支持所有 ...