hur.cn - 华软网

 热门搜索

Richedit中子对话框中部分文字颜色设置

  作者:未知    来源:网络    更新时间:2011/8/25
主对话框上有一个按钮,点击它可以弹出一个对话框,对话框里显示的是一篇文章,现在想将文章中的一个句子标成红色的,应该怎么设置,子对话类的cpp文件中应该写哪几个函数,主对话框类的cpp文件中又应该调用哪几个函数?求各位帮助,谢谢!
我在子对话框类的cpp文件中设置字体和颜色的函数中写的:
C++">

         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("全文中没有找到原句!");
}
运行完后能显示出文章,但是定义的句子变不成红色的。
---华软 网友回答---
m_REditCtrl.SetSel(ip1,ip2);
你的ip1和ip2计算的对不?
---华软网友回复---
1. 先找到第一句话。(我认为:m_REditCtrl.SetSel(0,第一个句号的位置);)
2. 设置Format 
m_CharFormat.crTextColor = RGB(255,0,0);
SetSelectionCharFormat(m_CharFormat);
---华软网友回复---
http://www.vckbase.com/document/viewdoc/?id=328
---华软网友回复---
如果在主对话框上添加一个Richedit对话框响应按钮,就能实现句子标红。代码如下:
C++">

        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("全文中没有找到原句!");
}
子对话框的代码该怎么写呢?
---华软网友回复---
子对话框上添加一个Richedit对话框响应按钮
引用 4 楼 guoning1401 的回复:
如果在主对话框上添加一个Richedit对话框响应按钮,就能实现句子标红。代码如下:
C++">

  int ip1=0;
int ip2=0;

if ((ip1 = QuanwenShow.Find(defineC_152),ip1) != -1)
{
m_CharFormat.cbSize = sizeof(m_CharFormat) +10;
m_C……

---华软网友回复---
引用 5 楼 buyong 的回复:
子对话框上添加一个Richedit对话框响应按钮
[Quote=引用 4 楼 guoning1401 的回复:]
如果在主对话框上添加一个Richedit对话框响应按钮,就能实现句子标红。代码如下:

  int ip1=0;
int ip2=0;

if ((ip1 = QuanwenShow.Find(defineC_152),ip1) != -……

在子对话框上添加了一个按钮,弹出子对话框后点击这个按钮能实现句子标红,但是老师不让用这个按钮实现标红,要一打开对话框句子就是标红的。应该怎么写代码呢,各位帮帮忙呗。
---华软网友回复---
在子对话框上添加了一个按钮,弹出子对话框后点击这个按钮能实现句子标红,但是老师不让用这个按钮实现标红,要一打开对话框句子就是标红的。应该怎么写代码呢,各位帮帮忙呗。

加载richeditbox的文章是在哪里?
可以在子对话框OnInitDialog里加上这段代码,前提是这时已经加载了文章。
---华软网友回复---

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);
}
     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。