Python微信订餐小程序课程视频
https://edu.csdn.net/course/detail/36074
Python实战量化交易理财系统
https://edu.csdn.net/course/detail/35475
让我们写一个 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