用rich edit控件显示BMP和文字,用下面代码获取图片的位置
REOBJECT object;  //
memset(&object,0,sizeof(REOBJECT));
object.cbStruct = sizeof(REOBJECT);
GetIRichEditOle()->GetObject(i,&object,REO_GETOBJ_ALL_INTERFACES);当我输入有中文的时候,获取的位置都是不对的,我程序编译环境是多字节的,请问怎么修改

解决方案 »

  1.   

    输入是英文的时候 位置就对了吗?那应该是字节的关系,ANSI下英文1个字节,中文2个字节UNCIDOE下英文、中文均占2个字节
      

  2.   


    IRichEditOle *pREO = NULL;   
    pREO = GetIRichEditOle();
    int nCount = pREO->GetObjectCount(); for (i = 0; i < nCount; i++)
    {
    REOBJECT object;  //
    memset(&object,0,sizeof(REOBJECT));
    object.cbStruct = sizeof(REOBJECT);
    GetIRichEditOle()->GetObject(i,&object,REO_GETOBJ_ALL_INTERFACES); faceNode.nPos = object.cp ; //
             }比如我输入“abc”和一副图的时候 faceNode.nPos = 3;输入“大大的”和一副图的时候 faceNode.nPos也是等于 3,该怎么修改
      

  3.   

    估计你的richedit类名是RichEdit20W,改成RichEdit20A试试。在rc文件中修改
      

  4.   

    "",IDC_RICHEDIT21,"RichEdit20A",ES_MULTILINE | ES_AUTOHSCROLL | ES_WANTRETURN | WS_BORDER | WS_VSCROLL | WS_TABSTOP,13,171,142,52
    这是我RC里显示的,应该不是RichEdit20W吧
      

  5.   

    那就不知道了 对richedit了解有限。等待高手解惑
      

  6.   

    我的也是这个问题,不知道楼主解决了吗   我的环境是 VS2005 Unicode 编码 
      

  7.   

    是不是 richedit2.0只支持UNICODE啊