在Word中嵌入应用程序
2008-02-23 06:54:54来源:互联网 阅读 ()
开发Word应用程序常用的有以下几种编程语言:Word Basic、VBA(Visual Basic for Applications)和Word API。 尽管Word Basic和VBA功能强大,但作为简单修改Word的工具,多少有些大材小用。笔者认为,Word API是开发Word应用程序的首选工具,尤其是可以利用C语言代码的快速、高效和灵活的特点,而且可以使用Word Basic接口函数和Windows动态连接库编程环境,实现对Word功能的添加。
Word API的使用方法
Word API生成的是一个可在Word中直接运行的Word加载项,它是一个以WLL为扩展文件名的单机动态连接库。这种WLL是标准的Windows动态连接库的特殊形式。可以用任何一个创建Windows DLL的环境来编译、链接和建立WLL。
Microsoft Word Developer's Kit(MS Word开发工具箱)中,提供了Word API的接口函数,下面分别加以介绍。
1. Word加载项的启动和卸载函数
(1) void FAR PASCAL wdAutoOpen(short DocID)
在Word中加载WLL的同时,Word会自动执行这个函数。在执行过程中,函数wdAutoOpen完成以下几个任务:
·向Word登记WLL中定义的所有函数;
·将WLL中的操作命令添加到Word的主菜单、快捷菜单和工具条中;
·给WLL的操作命令指定快捷键;
·完成WLL功能的初始化(如:机器翻译、中文校对的词库读入等)。
(2) void FAR PASCAL wdAutoRemove(void)
当WLL被卸载时,如果WLL程序中定义了wdAutoRemove(void)函数,Word将在卸载时执行这个函数。在该函数中,可以保存退出时我们定义功能函数生成的必要数据。
2. Word加载项中的登记函数
要想让Word中的某个主菜单项、快捷菜单项、工具条按钮或快捷键完成我们定义的某个函数,就必须在加载WLL时,先向Word登记我们的应用函数。Word API的接口函数CAPIRiGISter可以完成登记任务。该函数定义形式如下:
short CAPIRegister(short DocID, LPUCHAR lpszFunctionName, LPUCHAR lpszDescription);
@@0541700.JPG;表1@@
3. 在Word中将加载函数添加到主菜单项、快捷菜单项、工具条按钮和快捷键中 在WLL中应用函数登记完成之后,就可以在主菜单、快捷菜单和工具条中添加自己的菜单项和快捷键。这些工作由下面的函数完AddButton、NewToolbar、ToolsCustomi
zeMenu、ToolsCustomizeMenuBar和ToolsCustomizeKeyboard。
·在Word工具条中添加一个按钮:
short CAPIAddButton (short DocID, LPSTR lpszToolbar, short cPosition, LP
STR lpszMacro ,LPSTR lpszFace );
*S在Word中添加新的工具条:
short CAPIAddToolbar(short DocID,LPSTR lpszToolbar);
·在主菜单中添加新的菜单项:
short CAPIAddMenu(short DocID,LPSTR lpszMenuName,short Position,short Me
nuType);
·在菜单项中添加新的菜单命令:
short CAPIAddMenuItem(short DocID, LPSTR lpszMenu, LPSTR lpszName ,LPSTR
lpszMenuText,short Position, short MenuType);
·定义一个新的快捷键:
short CAPIAddkey (short DocID, short keyCode, LPSTR lpszName)。
要想定义组合键的快捷键方式,就需把几个键在Word Basic中的代码数字的二进制进行按位‘或'运算,将结果传递给第二个参数KeyCode。例如:快捷键CTRL S的KeyCode是(256 OR 83)=339。
4. Word API调用Word Basic函数前,函数参数和返回值的数据缓冲区的建立Word中的所有字处理功能都可由对应的Word Basic函数来实现。正是利用这一点,在
WLL中可以通过调用Word Basic函数来实现对Word的定制。因此,必须利用Word API函数InitWCB设立调用Word Basic函数时传递参数与返回值的数据缓冲区。
Void InitWCB (WCB far *lpwcb,short retType, LPSTR lPBuffer,short cBufferSize);
InitWCB的参数说明如下:
@@0541701.JPG;表2@@
例如,下面这段程序是获取所选区域的字符串字体情况:
WCB wcb; //Word的参数和返回值传递的数据区
short isbold;
InitWCB(&wcb,TypeShort,NULL,0);
//设立传递Word Basic函数参数和返回值的数据区wcb
WORDFUNCTION(wdBold);
//调用Word Basic函数Bold()
isbold=wcb.wdoprReturn.Short;
//从数据区wcb中取出Word Basic函数Bold()的返回值
5. Word Basic函数调用方法
Word中的命令是与Word Basic函数一一对应的。因此,Word API可以通过接口函数用C语言直接调用Word Basic函数来实现Word命令。
注意:在Word API中调用Word Basic命令函数名时均须在Word Basic函数名前加上2个英文字母‘wd',如:Word Basic函数Bold在Word API中的函数名应为wdBold。
根据这些函数有无返回值与是否为响应对话框的情况,在Word API头文件basedef.h定义了三种调用方法:WORDCALL、WORDFUCTION和WORDDIALOG。
·若被调用的Word Basic函数无返回值,用Word API接口函数WORDCALL来调用,形式是:WORDCALL(函数名);
· 若被调用的Word Basic函数有返回值,用Word API接口函数WORDFUNCTION来调用,形式是:WORDFUNCTION(函数名);
·若被调用的Word Basic函数是有关对话框操作,用Word API函数WORDDIALOG来调用,形式是:WORDDIALOG(函数名)。
例如:Word Basic中,给所选区域字符标粗体的函数Bold与判断所选区域字符是否为粗体的函数Bold()的调用方法就不同:
·函数Bold是一个操作,无须返回值,所以调用形式是WORDCALL(wdBld)。
·函数Bold()是一个判断,必须有返回值,所以调用形式是WORDFUNCTION(wdBold);
6. Word Basic函数参数的传递方法
在调用Word Basic带参函数时,需要通过Word API特定接口函数来传递参数。同时,对不同类型的函数,参数的传递方法也不同。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:用RND()函数加密
下一篇:获取鼠标在屏幕上的位置
- 在Word中嵌入应用程序 2018-06-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash