CRichEditCtrl中插入对象位置问题
这是获取CRichEditCtrl组件上文本的函数,可以获得文本及文本中间插入的gif图,并把
gif头像转换为文本字符串,如:) : <等
现在是输入英文+gif头像得到的字符串没问题,但中文+gif头像就会取错位置。调试跟踪发现是ole-> GetObject(i, &reo, REO_GETOBJ_NO_INTERFACES);这个地方取回来时不管是英文文本还是汉字1个字都算1个字符,所以text += str.Mid(pos, reo.cp - pos);这里得到的字符串就不对了。
[解决办法]
定义一个nUniCount
for (int j=0;j <strMid.GetLength();j++){
unsigned char c = strMid.GetAt(j);
if (c > 127){
nUniCount ++;
j++;
}
}