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号