没有合适的资源?快使用搜索试试~ 我知道了~
让我们写一个 Win32 文本编辑器吧 - 1. 简介.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 38 浏览量
2022-07-08
13:36:31
上传
评论
收藏 2.69MB DOC 举报
温馨提示
试读
22页
让我们写一个 Win32 文本编辑器吧 - 1. 简介.doc
资源推荐
资源详情
资源评论
让我们写一个 Win32 文本编辑器吧 - 1. 简介
在之前的一篇文章 《曾经我认为 C 语言就是个弟弟》 中,我们通过使用 Windows
系统自带的 EDIT 控件,创建了一个简单的文本编辑器。而且在文章的最后,还承诺要不
使用 EDIT 控件,自己制作一个十六进制编辑器。
本篇文章,将会逐步实现我们的编辑器。
让我们写一个 Win32 文本编辑器吧 - 1. 简介
在之前的一篇文章 《曾经我认为 C 语言就是个弟弟》 中,我们通过使用 Windows 系统
自带的 EDIT 控件,创建了一个简单的文本编辑器。而且在文章的最后,还承诺要不使用
EDIT 控件,自己制作一个十六进制编辑器。
后来想到,既然十六进制编辑器都做了,作为一个程序员,不如写一个文本编辑器吧,既
可以编辑二进制,又可以编辑文本,岂不美哉。
由于实现一个编辑器的复杂性相对比较大,一篇内容肯定完不成。所以,这里决定将整个
过程作为一个系列来编辑。
本篇是系列的第一篇。在本篇文章中,将会对我们期望获得的结果进行简单的描述,并进
行基础代码框架进行构建。
本文主要包含两个部分,如下:
项目简介
在项目简介部分,将会对我们要实现的目标编辑器的样子,以及使用方法进行介绍。同时,
也会对本系列接下来的文章要讨论的主题进行大致说明。
基础代码框架搭建
在代码框架搭建部分,将会对项目的创建,设置进行说明。并编辑我们的基础代码。
1. 项目简介
a. 目标
在 Windows11 中,已经将记事本的编辑控件由 EDIT 替换为 RichEditD2DPT,详情参
考 Windows 11 Notepad。但是由于关于 RichEditD2DPT 控件的描述太少,不知道其具体的
用方法。
所以,这里我们以 EDIT 控件的接口为准,并实现附加功能。
在此,我们的目标是:通过 C 语言,调用 Win32 接口,生成一个文本编辑器。目标编
辑器除了实现和 Windows 提供的默认文本编辑器 EDIT 的所有消息处理,还提供如下功
能:
可以设置字体颜色
对于 EDIT 控件,虽然可以设置其文本字体,但是没有设置颜色的方法。
可以编辑比较大的文件
对于平时的文件编辑器来说,编辑小文件基本上都差不多,但是当遇到比较大的文件时
(比如 1G),很可能无能为力,甚至卡死。
所以,既然我们要做一个新的编辑器,自然要考虑大文件的编辑问题。
采取 Direct Write 方式实现,而不是和普通的编辑器一样,通过 GDI。
做此选择的原因,除了因为 Direct Write 支持颜色之外,还有一些其它优点,详情可以点
击 Direct Write 进行参考。
支持 EDIT 控件 的所有消息。
为了使得旧 Win32 代码更好的使用本编辑器,所有 EDIT 控件支持的操作,本项目都应
该支持。
处理\r\n
此选择和 Windows 11 中的选择具有相同的理由,为了更好的处理换行。
支持撤销操作/恢复上一步操作
在编辑文本时,难免会想恢复到不久之前的版本,撤销操作允许你做到这个。而当你后悔
撤销的时候,也应该能够恢复到最新版本,恢复上一步允许你做到重新执行你之前的操作。
支持 Unicode 编码
可以设置注解
在编辑时,尤其是要编辑二进制文件时,我们有时候可能要对某个字节,或某段文本进行
注解。我们的编辑器允许提供一个注解结构,以在显示文档时,可以进行注解显示。
可以进行二进制文件编辑。
二进制编辑虽然不常用,但是,不能在需要用的时候找不到。所以,这里提供了二进制编
辑功能。此功能和注解相结合,就可以进行辅助二进制文件的分析。
b. 目标编辑器的样子
作为一个现代的编辑器,我们希望它有一般编辑器都应该有的能力,下面是一个编辑器的
例子:
![](https://img2022.cnblogs.com/blog/456172/202204/456172-20220403204453442-17581346
48.png)
不难看到,作为一个编辑器,应该支持行号,高亮,多字体,滚动条等内容。这在我们的
编辑器中,都将一一实现,并详细描述实现过程。
c. 项目结构
对于本项目来说,一共包含两个子项目,如下:
vicapp:
用于对编辑器控件进行调用的样例程序
vitality-controls:
编辑器控件的实现项目,将作为一个 DLL 文件提供给调用者。
d. 参考链接
代码地址:https://.com/vitalitylee/vitality-controls
2. 基础代码框架搭建
接下来,我们详细说明整个项目的构建过程。
a. 打开 Visual Studio ,并点击创建新项目如下:
剩余21页未读,继续阅读
资源评论
书博教育
- 粉丝: 1
- 资源: 2835
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功