92上位机VC MFC富编辑框显示各种字体及颜色文本
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(); 我们来演示下功能实现的整个过程
|