求助:CRichEditCtrl控件问题 各位高手:setsel这个函数是不是不认/r/n回车换行符,当我将一段message中的表情转义符替换成表情操作时,如果碰到回车换行符,所有的表情位置都错位了,好像也没什么规律. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 工程为.net 2003 RichEdit2.0工程已设为Unicode 现在出现什么问题?你说的将一段message中的表情转义符替换成表情操作没有搞懂。 好像可以的哦你是先怎样将message写进richedit的?先全部写了在将转义符更换还是一个个字符的读?我试过在cstring中找到转义符的位置,记录,将转义符去掉,然后SetSel(-1, -1);ReplaceSel(strMsg + "\r\n");之后再插图片,没有问题哦 感谢二位的回复问题是这样的:工程没有定义Unicode,首先我从输入消息的Richedit控件中得到表情的位置(ole->GetObject(i, &reo, REO_GETOBJ_NO_INTERFACES);)但是如果碰到像1234表情1234回车换行符1234表情1234在得到第二行的表情的位置刚好是比实际的要少一位,调试发现GetObject这个函数不管你是否定义Unicode当碰到回车换行符时都认为是一个字符,所以比实际的长度要少一位。然后到了显示的时候,在SetSel转义符的时候,位置就错乱了如果工程中定义成Unicode的话,之前的问题似乎可以解决,然而新问题又来了,在使用CString的mid函数来取转义符时,Mid函数将"\r\n"识别成了两个字符。然而到了使用Richedit 的Setsel的时候"\r\n"认为是一个字符。请各位高手支支招。谢谢~~ codeproject上面有一个例子,是RichEdit里面插入图像的,你可以找找看,我以前下载看过,不过电脑太乱不知道放哪里了。 http://www.codeproject.com/KB/edit/AnimatedEmoticon.aspxhttp://www.codeproject.com/info/search.aspx?artkw=richedit&sa_ao=False&sa_ig=False&sa_so=17&pgnumpager=3搜一下看看 http://www.codeproject.com/KB/edit/AnimatedEmoticon.aspx 这个例子看过了,也只是些缩简版本,没有提到如何将传过来的东东整到显示框里头去。 还有一个例子是在richedit里面显示gif图像,还支持一个打开powerpoint的,我忘了地址了。 这样的话或者换一种方式咯一个字符一个字符的读和写,读到转义符的时候用int nCharCount = pRichEditCtrl->GetTextLength();来读取插入的位置或者将转义符前面的先写,插入图片,再写后面的,一段一段来反正都要解析转义符的 你好,问题和你的一样,求解答![email protected] 验证码识别 我要访问一个URL,怎么把获得这个URL所以产生的数据包 借人气问个mysql问题 请问哪位对语音识别了解的,请进来看看! 在线等待!!!关于spi的两个问题 机器没有1394接口如何进行远程调试? txt文件读取为什么会读出乱码???? 已有自定义格式的图片文件,如何将其转化成点阵格式? MPEG_1媒体帧大小是不是固定的? 如何查出com组件内存泄漏 HID类设备向USB口读写数据?? 我想问问大家关于AUX_RGBImageRec的问题!
工程已设为Unicode
SetSel(-1, -1);
ReplaceSel(strMsg + "\r\n");之后再插图片,没有问题哦
问题是这样的:工程没有定义Unicode,首先我从输入消息的Richedit控件中得到表情的位置(ole->GetObject(i, &reo, REO_GETOBJ_NO_INTERFACES);)但是如果碰到像1234表情1234回车换行符
1234表情1234在得到第二行的表情的位置刚好是比实际的要少一位,调试发现GetObject这个函数不管你是否定义Unicode当碰到回车换行符时都认为是一个字符,所以比实际的长度要少一位。然后到了显示的时候,在SetSel转义符的时候,位置就错乱了如果工程中定义成Unicode的话,之前的问题似乎可以解决,然而新问题又来了,在使用CString的mid函数来取转义符时,Mid函数将"\r\n"识别成了两个字符。
然而到了使用Richedit 的Setsel的时候"\r\n"认为是一个字符。请各位高手支支招。谢谢~~
搜一下看看
这个例子看过了,也只是些缩简版本,没有提到如何将传过来的东东整到显示框里头去。
int nCharCount = pRichEditCtrl->GetTextLength();
来读取插入的位置或者将转义符前面的先写,插入图片,再写后面的,一段一段来
反正都要解析转义符的