65.9K
CodeProject 正在变化。 阅读更多。
Home

Brainchild,一款支持语法高亮显示的编辑控件

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.85/5 (59投票s)

2002年11月18日

CPOL

5分钟阅读

viewsIcon

751669

downloadIcon

26862

支持语法高亮、多级撤销/重做的编辑器控件。

注释

版本 2.4 及以上版本的 brainchild 控件中的查找和替换对话框是非模态的。这要求您在应用程序的主消息循环中调用新引入的 API IsNonModalDialogMessage()。使用该控件的旧代码需要更新。否则,快捷键和 Tab/Shift+Tab 导航将无法正常工作。

编译好的二进制文件包包含 brainchild.dllbcc.cplBCDemo.exebrainchild.ocx 的编译版本。请注意,如下面所述的设置仍然是使一切正常工作的必要步骤。

引言

Brainchild 是一款支持语法高亮、多级撤销/重做等所有功能的编辑器控件。该编辑器控件分为三个部分。

  1. Brainchild.dll 是编辑器控件本身。它是用 C 编写的核心组件。
  2. BCC.cpl 是配置控制面板小程序。它用 C++ 编写,并依赖于我的 ClassLib 库。
  3. Brainchild.ocx 是该控件的 ActiveX 包装器。它使用 MFC 以 C++ 编写。此 OCX 使得在 VB 或 .NET 应用程序中使用 brainchild 控件成为可能。

此外,我还包含了一个简单的 MDI 编辑器演示程序 BCDemo,它用 C++ 编写,也依赖于我的 ClassLib 库。

特点

Brainchild 支持大多数现代编辑器功能,包括:

  • 语法高亮,完全可配置。屏幕和打印输出都支持语法高亮。
  • 多级撤销/重做。可配置的最大回溯次数。
  • 书签。
  • 行号。
  • 完全可配置的键盘映射。
  • OLE 拖放支持。
  • 自动/智能缩进。
  • 自动修正大小写。

如何开始

我没有包含安装程序。这意味着您必须按照几个步骤来设置编辑器并使其正常运行。

  1. 下载源代码(DLL、CPL、OCX(可选)、BCDemo)或编译好的二进制文件。如果您决定使用编译好的二进制文件,仍然需要下载 DLL 的源代码。它包含运行所需的重要设置文件。如果您只使用编译好的二进制文件,可以跳到第 7 步。
  2. 下载、设置并编译 ClassLib C++ 库。
  3. 编译 brainchild DLL。
  4. 编译 brainchild CPL。
  5. 编译并注册 brainchild OCX(可选)。
  6. 编译 BCDemo 演示程序。
  7. 在硬盘上创建一个目录,用于存放 brainchild 的配置文件。
  8. 将 DLL 源代码 zip 文件中的 Defaults 目录及其所有内容复制到创建的目录中。
  9. 打开 RegEdit。
  10. 添加注册表项 HKEY_LOCAL_MACHINE\Software\BCDLL\CurrentVersion。(使用注册表编辑器时请务必小心!)
  11. 在该注册表项下,添加字符串值 Settings,并将其值设置为您为 brainchild 配置文件创建的目录。

要使演示程序正常运行,请将 branchild.dll、brainchild.ocxbcc.cpl 文件复制到包含 BCDemo 可执行文件的目录中,然后您应该就可以运行演示程序了。如果您想使用 OCX,请不要忘记注册它。您可以使用 RegSvr32 来注册 OCX。一旦程序运行起来,您可能还想下载 HTMLHelp 文档。它将解释如何在自己的程序中使用 brainchild 以及如何使用配置工具。

有什么新内容

2.4 版

  • 增强了查找和替换对话框。
  • 显著改进了打印支持。
  • 增加了对背景颜色的支持。
  • 添加了括号和行高亮显示。
  • 添加了 ActiveX 包装器,以便在 VB 和 .NET 应用程序中使用 brainchild。
  • 添加了对超链接的支持。
  • 修复了一些错误。

版本 2.3

  • 修复了几个棘手的 bug。
  • 支持加载和保存 Unicode 文件(仅限有限的加载和保存支持)。
  • 添加了大小写修正功能。启用后,它将自动修正关键字的大小写。由 Zodiakon 提出。

版本 2.2

此版本包含 Ernest Laurentin 提供的 WTL 包装器和小型 WTL 演示程序(仅限 VS6 工作区),您可以使用上面的链接下载。在此次发布中,只有 Brainchild_dll.zipBrainchild_help.zip 被更新。Brainchild_wtl.zip 被新增。BCC.cplBCDemo 的源代码未更新,因此 2.1 版本用户无需下载这些。另外请注意,VS7 解决方案是一个 Visual Studio .NET 2002 解决方案。我推测您可以将其加载到 Visual Studio .NET 2003 中而没有任何问题。

  • 即使未设置注册表项,控件现在也能加载。如果设置了,则必须将包含内容的 Defaults 目录复制到配置的目录中。
  • 添加了 LoadParserFromFile()LoadParserFromMemory() API 以及相应的消息。这将允许您在运行时添加解析器文件。
  • 修复了一个可能导致 brainchild 在接收到 WM_DESTROY 后崩溃的棘手 bug。该 bug 已被修复。

版本 2.1

  • 行号。控件现在支持显示行号的可能性。
  • WM_PRINTCLIENT 支持。
  • WM_MOUSEWHEEL 支持。
  • 一些 bug 修复。主要是 Windows XP 下运行时的少量渲染 bug。

版本 2.0

  • 首次在 CodeProject 上发布。

谢谢

该控件在过去几年中经过了多次重写。为了达到现在的水平,我参考了 **Andrei Stcherbatchenko** 的 CrystalEdit 组件的一些代码。基于他的工作而来的代码主要涵盖了撤销/重做和文本缓冲区部分。

Brainchild,一款支持语法高亮显示的编辑控件 - CodeProject - 代码之家
© . All rights reserved.