最近在使用MFC开发依款小程序,程序需要【根据一系列的条件来输出具有不同字体格式的文本】,比如:蓝色、红色、楷体等。
在网上搜索了很多方法,均没法实现。
经过自己的仔细琢磨,终于找到了解决办法。
【解决问题】:在输出文本的控件上,输出具有不同字体格式的文本。
比如,不同行具有不同颜色、若干位置设置加粗、若干特定字符设置成特定的字体
eg:这句话希望是红色的,而这句话希望输出的是蓝色的,但这句话希望是黑体,这句话里的“关键词”是加粗的。
要点:
1、 输出文本的控件,必须是RICHEDIT,不能是EDIT
2、定义字体的方式:
CHARFORMAT cf,cf_2; //定义若干字体
ZeroMemory(&cf,sizeof(CHARFORMAT));
cf.cbSize = sizeof(CHARFORMAT);
cf.dwMask = CFM_BOLD | CFM_COLOR | CFM_FACE | CFM_ITALIC | CFM_SIZE|CFM_UNDERLINE;
cf.dwEffects=0;
cf.yHeight=15*15; //文字高度
cf.crTextColor=RGB(0