使用Scintilla编写语法高亮文本编辑器

本文介绍了如何在MFC环境下利用Scintilla控件创建一个具有语法高亮、行号显示、代码折叠和代码补全功能的文本编辑器。首先,下载Scintilla和Lexilla的源码与DLL,然后在对话框工程中添加控件和相关头文件,接着设置控件风格和处理通知事件以实现功能,最后处理输入事件和自动缩进,完成编辑器的构建。
摘要由CSDN通过智能技术生成

一、概述

Scintilla是一个免费的源代码编辑控件,它完全开放源代码,并且提供一个license允许用户自由地将它用在开源软件或是商业软件中。比如我们常用的notepad++就是使用了这个控件。https://github.com/notepad-plus-plus/notepad-plus-plus/pull/12624

Scintilla官方下载地址:https://www.scintilla.org/scintilla532.zip 

配套的lex下载地址:https://www.scintilla.org/lexilla521.zip

编辑器控件代码是跨平台的,而如果需要在mfc中使用,则需要进行适当封装,幸好有人已经做好了相关的工作:CScintillaCtrl, CScintillaView & CScintillaDoc v1.77

该控件可以在对话框中以及视图中使用,该压缩包下载后就是一个完整的示例,可以编译;

另外有人也提供了一个相关的示例,该示例的发布信息中提供了可用的DLL文件,我们不再需要再编译可执行文件Scintilla.dll和Lexilla.dll。https://github.com/RadAd/RadNotepadMFC

本文主要讨论如何在对话框中使用和配置典型的功能。

二、需求与环境

VS2019,windows11,使用MFC开发;

1)在对话框中添加代码编辑器,

2)支持某种语言的关键字语法高亮,

3)行号显示与代码折叠

4)代码提示补全,

效果如下:

三、步骤

1)下载源码压缩包

https://www.scintilla.org/scintilla532.zip

https://www.scintilla.org/lexilla521.zip

http://www.naughter.com/download/scintillawrappers.zip

2)下载DLL

Releases · RadAd/RadNotepadMFC ·

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值