MFC应用实例:[41]Rich Edit使用

2025-11-05 04:54:44

1、新建一个基于对话框的应用程序,工程名为BaseRichEdit。

MFC应用实例:[41]Rich Edit使用

2、如下图为对话框添加一个Rich Edit控件和一个按钮,三个复选框,三个单选按钮。

MFC应用实例:[41]Rich Edit使用

3、双击“设置字体颜色”按钮添加响应函数OnTextColor(),修改其响应函数OnTextColor()如下:

void CBaseRichEditDlg::OnTextColor() 

{

// TODO: Add your control notification handler code here

CHARFORMAT cf;

memset (&cf, '\0', sizeof (CHARFORMAT));

cf.dwMask = CFM_COLOR;

m_RichSample.GetSelectionCharFormat (cf);

CColorDialog cc (cf.crTextColor);

// cc.m_cc.lpCustColors = m_clrCustom;

if (cc.DoModal () == IDCANCEL)

return;

cf.dwMask = CFM_COLOR;

cf.dwEffects &= ~CFE_AUTOCOLOR;

cf.crTextColor  = cc.GetColor ();

m_RichSample.SetSelectionCharFormat (cf);

m_RichSample.SetFocus ();

}

MFC应用实例:[41]Rich Edit使用

4、为三个复选按钮分别添加响应函数,添加函数如下:

void CBaseRichEditDlg::OnBold() //设置粗体复选框

{

// TODO: Add your control notification handler code here

CHARFORMAT cf;//结构体

m_RichSample.GetSelectionCharFormat (cf);

cf.dwMask |= CFM_BOLD;

cf.dwEffects ^= CFE_BOLD;

m_RichSample.SetSelectionCharFormat (cf);

if (cf.dwEffects & CFE_BOLD)//当前为粗体

m_ctlBold.SetCheck (1);//设置按钮被选中

else//当前不为粗体

m_ctlBold.SetCheck (0);//设置按钮未被选中

m_RichSample.SetFocus ();

}

void CBaseRichEditDlg::OnItalic() //设置斜体复选框

{

// TODO: Add your control notification handler code here

CHARFORMAT cf;

m_RichSample.GetSelectionCharFormat (cf);

cf.dwMask |= CFM_ITALIC;

cf.dwEffects ^= CFE_ITALIC;

m_RichSample.SetSelectionCharFormat (cf);

if (cf.dwEffects & CFM_ITALIC)//当前为斜体

m_ctlItalic.SetCheck (1);//设置按钮被选中

else//当前不为斜体

m_ctlItalic.SetCheck (0);//设置按钮未被选中

m_RichSample.SetFocus ();

}

void CBaseRichEditDlg::OnUnderline() //设置下划线复选框

{

// TODO: Add your control notification handler code here

CHARFORMAT cf;

m_RichSample.GetSelectionCharFormat (cf);

cf.dwMask |= CFM_UNDERLINE;

cf.dwEffects ^= CFE_UNDERLINE;

m_RichSample.SetSelectionCharFormat (cf);

if (cf.dwEffects & CFM_UNDERLINE)//当前带有下划线

m_ctlUnderline.SetCheck (1);//设置按钮被选中

else//当前不带有下划线

m_ctlUnderline.SetCheck (0);//设置按钮未被选中

m_RichSample.SetFocus ();

}

MFC应用实例:[41]Rich Edit使用

MFC应用实例:[41]Rich Edit使用

5、为三个单选按钮分别添加响应函数,添加函数如下:

void CBaseRichEditDlg::OnLett() 

{

// TODO: Add your control notification handler code here

PARAFORMAT pf;

m_RichSample.GetParaFormat(pf);

pf.dwMask = PFM_ALIGNMENT;

pf.wAlignment = PFA_LEFT;

m_RichSample.SetParaFormat(pf);

m_RichSample.SetFocus ();

}

void CBaseRichEditDlg::OnRight() 

{

// TODO: Add your control notification handler code here

PARAFORMAT pf;

m_RichSample.GetParaFormat(pf);

pf.dwMask = PFM_ALIGNMENT;

pf.wAlignment = PFA_RIGHT;

m_RichSample.SetParaFormat(pf);

m_RichSample.SetFocus ();

}

void CBaseRichEditDlg::OnCenter() 

{

// TODO: Add your control notification handler code here

PARAFORMAT pf;

m_RichSample.GetParaFormat(pf);

pf.dwMask = PFM_ALIGNMENT;

pf.wAlignment = PFA_CENTER;

m_RichSample.SetParaFormat(pf);

m_RichSample.SetFocus ();

}

MFC应用实例:[41]Rich Edit使用

6、程序运行如下

MFC应用实例:[41]Rich Edit使用

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢