主对话框上有一个按钮,点击它可以弹出一个对话框,对话框里显示的是一篇文章,现在想将文章中的一个句子标成红色的,应该怎么设置,子对话类的cpp文件中应该写哪几个函数,主对话框类的cpp文件中又应该调用哪几个函数?求各位帮助,谢谢!
我在子对话框类的cpp文件中设置字体和颜色的函数中写的:
         int ip1=0;
int ip2=0;
         m_CharFormat.cbSize = sizeof(m_CharFormat) +10;
m_CharFormat.crTextColor = RGB(255,0,0); 
m_CharFormat.dwEffects  = 0; 
m_CharFormat.dwMask  = CFM_COLOR; 
m_REditCtrl.SetSel(ip1,ip2);
m_REditCtrl.SetSelectionCharFormat(m_CharFormat);
在主对话框类cpp文件的按钮响应函数里写的:
         int ip1=0;
int ip2=0; if ((ip1 = Quanwen.Find(defineC_152),ip1) != -1)
{
ip2=ip1 + defineC_152.GetLength();

}else
{
write_log("全文中没有找到原句!");
}
运行完后能显示出文章,但是定义的句子变不成红色的。

解决方案 »

  1.   

    m_REditCtrl.SetSel(ip1,ip2);
    你的ip1和ip2计算的对不?
      

  2.   

    1. 先找到第一句话。(我认为:m_REditCtrl.SetSel(0,第一个句号的位置);)
    2. 设置Format 
    m_CharFormat.crTextColor = RGB(255,0,0);
    SetSelectionCharFormat(m_CharFormat);
      

  3.   

    http://www.vckbase.com/document/viewdoc/?id=328
      

  4.   

    如果在主对话框上添加一个Richedit对话框响应按钮,就能实现句子标红。代码如下:
            int ip1=0;
    int ip2=0; if ((ip1 = QuanwenShow.Find(defineC_152),ip1) != -1)
    {
    m_CharFormat.cbSize = sizeof(m_CharFormat) +10;
    m_CharFormat.crTextColor = RGB(255,0,0); 
    m_CharFormat.dwEffects  = 0; 
    m_CharFormat.dwMask  = CFM_COLOR; 
    m_ReditCtrl.SetSel(ip1,ip1 + defineC_152.GetLength());
    m_ReditCtrl.SetSelectionCharFormat(m_CharFormat);
    }else
    {
    write_log("全文中没有找到原句!");
    }
    子对话框的代码该怎么写呢?
      

  5.   

    子对话框上添加一个Richedit对话框响应按钮
      

  6.   

    在子对话框上添加了一个按钮,弹出子对话框后点击这个按钮能实现句子标红,但是老师不让用这个按钮实现标红,要一打开对话框句子就是标红的。应该怎么写代码呢,各位帮帮忙呗。加载richeditbox的文章是在哪里?
    可以在子对话框OnInitDialog里加上这段代码,前提是这时已经加载了文章。
      

  7.   


    void CRichEditCtrl::SetColour(COLORREF color)

      CHARFORMAT cf;
      cf.cbSize = sizeof(CHARFORMAT);
      cf.dwMask = CFM_COLOR;  GetSelectionCharFormat(cf);
      cf.crTextColor = color;
      if( cf.dwEffects & CFE_AUTOCOLOR )
        { cf.dwEffects ^= CFE_AUTOCOLOR;
    }
      SetSelectionCharFormat(cf);
    }