对这一段字串"О1234"第一个是大写的零,调用setsel(0,3),按道理应该应该选中"О1",但是实际选中的却是"О12",如果在CEdit则正确,请指教,非常困惑.

解决方案 »

  1.   

    CRichEditCtrl::SetSel
    void SetSel( long nStartChar, long nEndChar );====================
    当然是“012”
      

  2.   

    那你错了,在CRichEdit中和CEdit中表现的不一样,
    另外,如果你把第一个"零"改成任意一个汉字,比如改成"我1234",在两个控件中则都是一样
      

  3.   

    RichEdit有两个,一个是RichEdit 1.0的,另一个是RichEdit 2.0的。它们的区别是,前者把一个汉字作为两个字节处理,而后者把一个汉字作为一个字节处理。
      

  4.   

    vclearner
    无论按哪一种,都不能解释我提的问题,我刚在delphi中试了一下,结果是一样的出错,郁闷
      

  5.   

    我使用这段代码:
    m_RichEidtTest.SetWindowText("0123");//0123
    m_RichEidtTest.SetSel(0,3);
    m_RichEidtTest.SetFocus();
    在XP,VC6,SP6下选中的都是“01”!不知道你的是什么系统。
      

  6.   

    估计你的这个"О1234"只是一个ASIIC字符,不是一个真正的汉字
      

  7.   

    Richedit和edit中两者的占位符不同
    0xA7可被看作Unicode编码,我想
      

  8.   

    似乎第一个字节的ASCII码为0xA7的汉字都有这个现象。
    =======================
    A7
    
    
    
    
    
    
    АБВГДЕЁЖЗИЙКЛМН
    ОПРСТУФХЦЧШЩЪЫЬЭ
    ЮЯ
    абвгдеёжзийклмн
    опрстуфхцчшщъыьэ
    юя
    =====================