使用CFontDialog修改Richedit的字体

前段时间被richedit的字体折磨了很久,后来无意中在网上发现了这段代码,现分享之。

在这里,点击一个按钮即可修改myRichEdit中的字体。

void CMyClass::OnButtonFont()
{
CHARFORMAT cf;
LOGFONT lf;
memset(&cf, 0, sizeof(CHARFORMAT));
memset(&lf, 0, sizeof(LOGFONT));
myRichEdit.GetDefaultCharFormat(cf);
//得到相关字体属性
BOOL bIsBold = cf.dwEffects & CFE_BOLD;
BOOL bIsItalic = cf.dwEffects & CFE_ITALIC;
BOOL bIsUnderline = cf.dwEffects & CFE_UNDERLINE;
BOOL bIsStrickout = cf.dwEffects & CFE_STRIKEOUT;
//设置属性
lf.lfCharSet = cf.bCharSet;
lf.lfHeight = cf.yHeight/15;
lf.lfPitchAndFamily = cf.bPitchAndFamily;
lf.lfItalic = bIsItalic;
lf.lfWeight = (bIsBold ? FW_BOLD : FW_NORMAL);
lf.lfUnderline = bIsUnderline;
lf.lfStrikeOut = bIsStrickout;
strcpy(lf.lfFaceName, cf.szFaceName);

CFontDialog dlg(&lf);
dlg.m_cf.rgbColors = cf.crTextColor;
//以上就是自动获得RichEdit字体属性,并且打开字体对话框时照此初始化
if (dlg.DoModal() == IDOK)
{
//获得所选的字体属性,如字体、颜色、大小等
dlg.GetCharFormat(cf);

//设置输入框内所有字符的字体,包括已经输入的和将要输入的字符
myRichEdit.SetDefaultCharFormat(cf);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值