WIN32汇编 Richedit控件的使用
这次来介绍一下一个独特的控件------Richedit 说实话这次也是第一次接触到这个控件,以前虽然听说过但是不知道具体它是干什么的,从字面上看好像是edit控件的扩展一样,其实这样只说对了一半,Richedit控件确实比edit控件功能强大丰富,但是它们的使用位置不同,edit控件以前在学习控件的时候,就出现了许多edit控件,那时候用edit控件主要是实现向一个小的文本框中输入文本而且基本都是用在对话框中,而且大小也有限制,在单行模式下能容纳的文本不能超过32KB,在多行模式下也不能超过64KB,加上这个限制想要实现多文本的输入那就有点麻烦了,而且不能实现文本格式,大小颜色等属性的设置,出于此种原因,Richedit控件就有了大显身手的机会,它可以实现多文本的输入,但是需要指定大小(发送EM_EXLIMITTEXT,因为默认情况下控件还是将最大字符数限制为64KB),这个控件因为功能复杂,代码量较大,微软给它独立使用一个动态链接库存储(Riched32.dll 1.0版,Riched20.dll(2.0和3.0版)),具体功能看一下下表(罗云斌老师书中的一张介绍图)
不同版本Richedit控件之间的区别
1.0版
2.0版
3.0版
DLL库文件名
Riched32.dll
Riched32.dll
Riched32.dll
控件的类名
Richedit
Richedit20A
Richedit20W
Richedit20A
Richedit20W
拖放编辑
支持
支持
支持
流输入输出
支持
支持
支持
Unicode编辑
不支持
支持
支持
非窗口操作
不支持
支持
支持
自动URL识别
不支持
支持
支持
加速键
不支持
支持
支持
分行符
CR+LF
CR
CR(可模拟1.0版)
撤销/重做
支持单级
支持多级
支持多级
文本搜索
向前搜索
向前/向后搜索
向前/向后搜索
知道了Richedit控件的大致功能,接下来就需要知道怎么来实现相关的功能,分为如下几步来实现:
资源文件
菜单
IDR_MENU1
加速键
IDR_ACCELERATOR1
光标
IDI_ICON1
实现过程
控件的流操作
_ProcStream()
文件的保存
_SaveFile()
打开文件
_OpenFile()
检测文件修改
_CheckModify()
查找文字
_FindText()
实时改变菜单项状态
_SetStatus()
窗口内容初始化
_Init()
退出程序
_Quit()
窗口过程
_ProcWinMain()
主函数
_WinMain()
下面来回顾一下写程序的时候遇见的一些问题:
首先是资源文件,依然使用ResEdit编写,这次的资源文件需要定义的有图标,菜单,另外一个就是加速键(这个加速键好久没有写过了感觉有点陌生了,以前还是和菜单一起学习的,菜单现在已经非常熟练了,要写加速键还要再翻一下以前的文章。。。)下面简单总结一下:
键名-----表示加速键对应的按钮可以有3种方式定义:
1.“^字母”: 表示Ctrl加上字母键
2.“字母” : 表示字母,这时的类型必须指明是VIRTKEY
3. 数值 :表示ASCII码为该数值的字母,这是类型必须指明为ASCII
(在使用ResEdit编写的时候直接在键名这一项输入相应的字母,就可以了,工具已经自动处理过了)
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/63653.html