首页 理论教育高级编辑控件使用注意事项

高级编辑控件使用注意事项

【摘要】:普通编辑框所有文字的颜色和字体都是统一的,而高级编辑控件是不同文字和段落可以设置不同的字体和颜色。另外,普通编辑框有内置的上下文菜单,而高级编辑控件内没有。使用高级编辑控件主要注意以下几点。否则含有RichEdit控件的对话框会弹出失败。2)可以调用CWnd::SetWindowText函数设置整个RichEdit控件的文字,更多情况是调用CRichEditCtrl::ReplaceSel函数插入文字或者覆盖文字。图9-4 编辑控件属性2)修改控件的属性,见表9-2。

普通编辑框所有文字的颜色和字体都是统一的(记事本的效果),而高级编辑控件(CRichEditCtrl)是不同文字和段落可以设置不同的字体和颜色(写字板的效果)。另外,普通编辑框有内置的上下文菜单,而高级编辑控件内没有(需要手动编写代码来实现)。

使用高级编辑控件(RichEdit)主要注意以下几点。

1)必须在App类的InitInstance函数中,在程序刚启动时执行全局函数AfxInitRichEdit。否则含有RichEdit控件的对话框会弹出失败。

2)可以调用CWnd::SetWindowText函数设置整个RichEdit控件的文字,更多情况是调用CRichEditCtrl::ReplaceSel函数插入文字或者覆盖文字。

3)调用CRichEditCtrl::SetDefaultCharFormat函数设置控件内所有文字的格式(字体和颜色),包括已经输入的和将要输入的。

4)调用CRichEditCtrl::SetSelectionCharFormat函数为选中的文字设置格式。

5)调用CRichEditCtrl::SetWordCharFormat函数为将要输入的文字设置格式。

6)调用CRichEditCtrl::SetParaFormat函数为当前选择的段落设置格式。

创建一个工程名为“Chat”的对话框程序,演示使用RichEdit来显示聊天记录。

1)在主对话框中添加一些控件,包括Edit和RichEdit控件,如图9-4所示。

978-7-111-46378-8-Chapter09-6.jpg

图9-4 编辑控件属性

2)修改控件的属性,见表9-2。

表9-2 主对话框的控件属性

978-7-111-46378-8-Chapter09-7.jpg(www.chuimin.cn)

3)修改程序启动函数InitInstance的代码。

978-7-111-46378-8-Chapter09-8.jpg

4)使用类向导添加RichEdit的控件型关联变量,如图9-5所示。

978-7-111-46378-8-Chapter09-9.jpg

图9-5 添加控件型关联变量

5)修改对话框初始化函数OnInitDialog的代码。

978-7-111-46378-8-Chapter09-10.jpg

6)使用类向导添加按钮IDOK的消息映射函数,并修改代码。

978-7-111-46378-8-Chapter09-11.jpg

978-7-111-46378-8-Chapter09-12.jpg

编译并运行,测试代码。聊天历史中显示各种不同字体和颜色的文字,如图9-6所示。

978-7-111-46378-8-Chapter09-13.jpg

图9-6 查看运行结果