现有一个RichEdit控件,想在里面显示如下文本:一、标题正文如下:今天是个好日子。我希望“一、标题”能够以较大字体显示,加粗。“正文如下:今天是个好日子。”则用普通的字体显示就可以了。我设置一种字体后整个文本就只能是这种字体,无法区别显示。请问应如何做到这种效果呢?

解决方案 »

  1.   

    http://msdn.microsoft.com/zh-cn/library/51y8h3tk(VS.90).aspx或者MSDN搜WORDPAD这个示例。
      

  2.   

    回LS,你说的这个是在VS 2005以上的例子吧。我现在是在VC 6里面用RichEdit控件来做。
      

  3.   

    分开设置两次就可以了 CHARFORMAT usercf;
    memset(&usercf, 0, sizeof(CHARFORMAT));

    usercf.cbSize = sizeof(CHARFORMAT); 
    usercf.dwMask = CFM_BOLD|CFM_COLOR|CFM_FACE|CFM_ITALIC|CFM_UNDERLINE|CFM_SIZE|CFM_STRIKEOUT; 
    usercf.dwEffects = CFE_PROTECTED; 
    usercf.yHeight = 15*1440/96; 
    usercf.yOffset = 0; 
    usercf.crTextColor = RGB(0,0,255); 
    usercf.bCharSet = 0; 
    usercf.bPitchAndFamily = 0; 
    strcpy(usercf.szFaceName, "宋体");

    m_richedit.SetWordCharFormat(usercf);
    m_richedit.ReplaceSel("一、标题"); memset(&usercf, 0, sizeof(CHARFORMAT));

    usercf.cbSize = sizeof(CHARFORMAT); 
    usercf.dwMask = CFM_BOLD|CFM_COLOR|CFM_FACE|CFM_ITALIC|CFM_UNDERLINE|CFM_SIZE|CFM_STRIKEOUT; 
    usercf.dwEffects = CFE_PROTECTED; 
    usercf.yHeight = 10*1440/96; 
    usercf.yOffset = 0; 
    usercf.crTextColor = RGB(0,123,0); 
    usercf.bCharSet = 0; 
    usercf.bPitchAndFamily = 0; 
    strcpy(usercf.szFaceName, "微软雅黑");

    m_richedit.SetWordCharFormat(usercf);
    m_richedit.ReplaceSel("\n    今天是个好日子");