工控编程吧
标题:
92上位机VC MFC富编辑框显示各种字体及颜色文本
[打印本页]
作者:
qq263946146
时间:
2015-12-16 22:02
标题:
92上位机VC MFC富编辑框显示各种字体及颜色文本
(, 下载次数: 4)
上传
点击文件名下载附件
92上位机VC MFC富编辑框显示各种字体及颜色文本
功能展示
一般的聊天软件,编辑框内可以设置与输入任何字体与颜色的文本,我们当前例程也实现了这些功能,用户点击设置字体,可以设置文本的颜色,大小,字形,下划线等属性,效果如图;
要点提示
实现不同颜色及字体的设置主要是通过CRichEditCtrl类的SetWordCharFormat()方法实现 ;函数跟随一参数CHARFORMAT ;CHARFORMAT包含了编辑框缺省的字符格式化属性,我们仅要定义一个CHARFORMAT结构体变量,再简单设置变量的成员变量便可用SetWordCharFormat()实现不同的颜色及字体的编辑框
实现功能
1.新建基于对话框的应用程序
2.拖拽一富编辑框控件,关联变量CRichEditCtrl m_RichEdit;添加一按钮,关联函数,实现字体颜色的设置
3.实现编辑框的初始化及按钮的函数功能
CStdioFile file;
file.Open("test.txt",CFile::modeRead);
CString sText,s;
while(1)
{
BOOL bGettedStr= file.ReadString(s);
if(!bGettedStr)
break;
sText+=s;
sText+='\n';
}
m_RichEdit.SetWindowText(sText);
复制代码
void CGkbc8Dlg::OnSet()
{
CFontDialog dlg; //初始化字体信息
if(dlg.DoModal()==IDOK) //判断是否按下"确定"按钮
{
LOGFONT temp; //声明LOGFONT结构指针
dlg.GetCurrentFont(&temp); //获取当前字体信息
CHARFORMAT cf; //声明CHARFORMAT变量
memset(&cf, 0, sizeof(CHARFORMAT)); //分配内存
m_RichEdit.GetDefaultCharFormat(cf); //获得缺省的字符格式化属性
cf.yHeight = temp.lfWeight; //设置字号
cf.dwMask = CFM_COLOR | CFM_SIZE | CFM_FACE; //设置标记属性
cf.dwEffects = CFE_BOLD; //设置标记属性有效
cf.crTextColor = dlg.GetColor(); //设置颜色
strcpy(cf.szFaceName,temp.lfFaceName); //设置字体
m_RichEdit.SetWordCharFormat(cf); //设置控件显示字体
m_RichEdit.SetSel(-1,-1); //选择最后一行
m_RichEdit.ReplaceSel("\n"); //插入换行符
m_RichEdit.SetSel(-1,-1); //选择最后一行
}
}
复制代码
最后不要忘记对富编辑框的初始化 AfxInitRichEdit();
我们来演示下功能实现的整个过程
[iqiyi]http://player.video.qiyi.com/763372f2d32921d279db077025b12392/0/0/w_19rt7h3g9t.swf-albumId=5033317709-tvId=5033317709-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4