我现在做的一个项目,是要在文本框里每个字都能用不同的颜色显示,本来是用Edit的,可是文字只能用一种颜色,后来就用了richedit,可是发现和多特殊字符号都是显示不出来,后来又改成了RICHED20.DLL并且是改成了unicode的,只有粘帖进去能正常显示,如果是在程序的其它地方往richedit送字符串,特别字符号还是变成了???????,读也是,读出来再用Edit显示出来也是变成了?????,这该怎解决啊?

解决方案 »

  1.   

    在线等啊,我还是新手来的,刚注册CSDN,有不懂规矩的地方大家批评我啊,好象这里是要加分的吧,我会加分的!
      

  2.   

    怎么送的?
    是不是在向richedit送字符串的过程出了问题?
      

  3.   

    //这是在前面的一些定义
    CString m_str1;
    m_str1 = _T("");
    DDX_Text(pDX, IDC_RICHEDIT01, m_str1);这是在后面的函数里的一些操作
    UpdateData(true);
    temp_str.Format(_T("%c"),9829);//9825不记得是心还是笑脸的符号了,☺♥
    m_str1+=temp_str;
    UpdateData(false);
      

  4.   

    CRichEditCtrl::StreamIn
    long StreamIn( int nFormat, EDITSTREAM& es );
      

  5.   

    coldplay968() 这个是什么意思啊?具体要怎么弄?谢谢!
      

  6.   

    coldplay968() 原来StreamIn是对文件读啊!可是我现在要的不是对文件的操作啊!其实我是做硬件的,现在是要做一个双色屏啊,通过电脑的串口往外送数据而已.我想做的就是先在richedit里输好文,然后选中某短文字,然后点一下颜色选择键,那字就变成我要的颜色了.现在有发现,复制粘贴虽然可以把特殊符号粘到richedit里,可是一改颜色后那特殊字符号又不见了,我现在都基本想放弃richedit了,想用Edit派生一个类啊,大家说说看怎么做比较好啊?
      

  7.   

    乖乖的等微软出新版本的RichEdit吧.
    现在的是不支持Unicode.就算宏定义了Unicode都不能用.
    按常规来说,编译时,读取字符串功能的时候应该会对是否有定义 Unicode对于判断然后选择使用哪种方式读取的.
    不过似乎旧版RichEdit没有支持,可恶.
    文本文档都可以支持Unicode,就是不把RichEdit不弄成Unicode.
      

  8.   

    楼上的从哪里听说Richedit不支持UNICODE的?微软从XP/2000以后操作系统就是内在支持UNICODE的了,Richedit当然更支持。
    楼主的问题,是你的编码没有使用UNICODE。而且你要显示特殊字符,也和UNICODE编码无关,只要设置合适的符号字体就可以了。