Microsoft Word 语法高亮插件(v1.2)

提供源代码下载,让我们一起来发挥想象…… [更新日期:2006年5月17日]

English Version


1. 语法高亮插件介绍

    语法高亮插件就是为 Microsoft Word 编写的 COM 插件。编写插件可以在 Word 中添加菜单或者工具栏按钮,实现我们自己需要的一些特殊功能。

    本站发布的插件,可以改变选定文本的颜色和背景色。着色的规则没有固定,任何人可根据接口来实现更多的着色规则。本插件提供了一个开放的操作 Word 文本的途径。如果你对文本分析比较感兴趣,本插件可使你跨过插件开发本身这道门槛,专心致力于为着色规则发挥想象。

    本软件由一个主插件模块(sntxaddn.dll)和若干个“着色规则”组成。


2. 插件的安装

2.1 使用“安装程序”进行安装

    直接下载安装程序进行安装。安装程序中已包含本站提供的 HTML 语法的着色规则:

[demo_nt.msi] - 324kb(for Windows NT/2K/XP)

[demo_9x.msi] - 324kb(for Windows 9x)


3. “着色规则”开发接口介绍

3.1 接口文件介绍

    开发接口文件名为:sntxmod.h ,其中声明了6个函数。实现这 6 个函数,即可完成在 Word 上添加一个按钮:

// Caption
const char * GetCaption();

// Tooltip (可省)
const char * GetTooltip();

// Button Face (可省)
HBITMAP GetBtnFace();

// Parse
void Parse(wchar_t * text, int len);

// Nextpos
bool GetNextPos(int & pos, int & len);

// Color
bool GetColor(int & color);

// Bgcolor (可省)
bool GetBgColor(int & bgcolor);

说明:

    GetCaption() 函数在插件安装后,第一次打开 Word 时被调用,返回值将用于新添按钮上的文字。

    GetTooltip() 函数在插件安装后,第一次打开 Word 时被调用,返回值将用于新添按钮的 Tooltip 文字,当鼠标停留在按钮上放时,这句文字将被显示成提示。

    GetBtnFace() 函数在插件安装后,第一次打开 Word 时被调用,要求返回一个 16x16 的位图句柄。返回的 HBITMAP 句柄将用于按钮图片,位图中的紫红色(0xFF00FF,■)将用来表示透明色。

    Parse() 函数在点击相应的按钮时被调用,传入的 text 内容为当前所选定的文本,传入 len 为当前选定文本的长度。text 同时也可以通过 '\0' 判断结束。

    GetNextPos() 函数在 Parse() 被调用后紧接着被调用多次,直到返回 false 为止。GetNextPos() 应该通过 bool 型返回值,告诉 Word 是否需要继续进行着色;同时,通过引用变量 pos 和 len 告诉 Word 需要本次进行着色的位置和长度。注意,返回的 pos 是位于 Parser() 中传入的 text 中的位置,不是 Word 整篇文章中的位置。当着色操作完成后,GetNextPos() 必须返回 false 。

    GetColor() 函数在每次调用 GetNextPos() 返回 true 之后被调用。通过 bool 型返回值,告诉 Word 是否要对文本颜色进行修改;如果要修改,则通过引用变量 color 返回颜色值。

    GetBgColor() 函数在每次调用 GetNextPos() 返回 true 之后被调用。通过 bool 型返回值,告诉 Word 是否要对文本背景颜色进行修改;如果要修改,则通过引用变量 bgcolor 返回颜色值。


3.2 开发示例

第一步:创建 'Win32 Dynamic-Link Library' 类型的 Project:

第二步:选择 'A simple DLL project' :

第三步:实现 'sntxmod.h' 中声明的 6 个函数:

第四步:将编译得到的 dll 文件复制到安装目录,重新打开 Word,选定文本,点击按钮:

3.3 示例代码下载

    着色规则的开发接口为 sntxmod.h 文件,其中有 6 个函数声明,使用 dll 实现这些方法即可完成一个着色规则开发。将编译得到的 dll 文件复制到主模块(sntxaddn.dll)所在的目录,重新打开 Word 即可看到新添加的按钮。

    “主模块(sntxaddn.dll)”,“示例着色规则”,以及“开发接口(sntxmod.h)”下载:

[demo_nt.zip] - 33kb(sntxaddn.dll 为 UNICODE 版本)

[demo_9x.zip] - 33kb(sntxaddn.dll 为 ANSI 版本)


4. 插件源代码

4.1 说明

    本站将公开插件主模块的源代码,以利于大家进行交流。对 Office 插件开发感兴趣的朋友,本插件的源代码可作为一个参考。


4.2 免费软件版权声明

本免费软件,可以自由使用和转载发布。转载发布时必须声明原始出处为:
http://www.regexlab.com/highlight/

已开放源代码,允许免费使用,允许直接在本插件源代码基础上进行修改,开发其他任何商业或免费软件。本站不对使用部分或全部本插件源代码的软件的质量作出保证。


4.3 下载

源代码下载地址:

[Syntax3.src.zip] - 30kb


5. 相关赞助商链接

 

 

 

RegExLab.com © 2005 -   渝ICP备05015140号