在Word中嵌入应用程序(2)
2008-02-23 06:54:54来源:互联网 阅读 ()
(1) 逐个传递参数
这种传递参数的方法适用于参数位置固定的函数,例如:Word Basic函数:
MenuText$(Type,MenuNumber[,Context])
其中的三个参数是按次序排列的。由于Word API调用Word Basic函数方式是函数名作为WORDCALL、WORDFUCTION和WORDDIALOG的参数,无法一次添加Word Basic函数参数,所以传递Word Basic函数参数时需要在InitWCB函数设置数据缓冲区后,依次通过数据缓冲区传递参数,第一个赋给Type,第二个赋给MenuNumber,如果有第三个参数则赋给Context。
在向这类函数传递参数时,根据待传递参数数据类型的不同,有以下4个函数可以选用
·传递short型参数的函数:
void AddShortParam(WCB far *lpwcb, short ShortVal);
·传递long型参数的函数:
void AddLongParam(WCB far *lpwcb, long LongVal);
*S 传递double型参数的函数:
void AddDoubleParam(WCB far *lpwcb, double DoubleVal);
·传递字符串参数的函数:
void AddStringParam(WCB far *lpwcb, LPSTR lpStr);
下表是上面4个函数参数的说明:
@@0541702.JPG;表3@@
例如,下面部分程序的作用是给所选区域字符串着绿色:
InitWCB(&wcb,TypeShort,NULL,0);
AddShortParam(&wcb,4);
//4是绿色在Word中的标识, 将一个short参数放//入参数缓冲区
WORDCALL(wdCharColor);
//调用Word Basic函数CharColor
(2) 传递指定参数
这种传递参数的方法适用于参数有标识名指明的函数。这种函数的参数有定义了的标识,传递时没有次序问题。例如:Word Basic中插入空表的函数TableInsertTable: Ta
bleInserTable [.ConvertForm][,.NumberColumns][,.NumRows][,.InitialColWidth][
,.Wizard][,.Format] [,.Apply] 因此,向TableInserTable函数传递参数时,只需指明哪一个标识即可。这种情况一般用于具有较多参数的函数。
在向这类函数传递参数时,与上面的类似,也是根据参数数据类型的不同,有以下4个函数可以选用:
·void AddShortDlgField(WCB far *lpwcb,short ShortVal,short FieldId,shor
t fMode);
·void AddLongDlgField(WCB far *lpwcb,long LongVal,short FieldId,short f
Mode);
·void AddDoubleDlgField(WCB far *lpwcb,double DoubleVal,short FieldId,s
hort fMode);
·void AddStringDlgField(WCB far *lpwcb,LPSTR lpStr,short FieldId,shortf
Mode,short cBufferSize);
下表是上面4个函数参数的说明:
@@0541703.JPG;表4@@
其中,传给FieldId的所有标识名都已在WORD API文件wdfid.h中被定义了。
下面的例子是要在光标所在位置插入一个4*12的空表:
InitWCB(&wcb, TypeShort , NULL, 0);
AddStringDlgField(&wcb, "4",fidNumColumns, fMode, 0);
AddStringDlgField(&wcb, "12",fidNumRows, fMode, 0);
WORDCALL(wdTableInsertTable);
上面的fidNumColumns和fidNumRows是在Word API文件wdfid.h中定义的参数标识名。调用函数AddString DlgField,将表的行数"4"和列数"12"直接传给Word Basic的函数TableInsertTable的两个参数NumColumns和NumRows。
注意:在Word API文件wdfid.h中被定义了的函数参数的标识名是与Word Basic函数的参数标识名一一对应的,但不同的是,Word API的参数标识名是在WordBasic的参数标识名前加了‘fid'构成的。如:Word Basic的函数TableInsertTable有两个参数是NumColumns和NumRows,那么,在Word API中的参数标识名就应是fidNumColumns和fidNumRows。
创建WLL的程序框架
本文给出一个用Word API完成的完整WLL框架,来实现如下图所示Word中的修改。@@0541704.JPG;图1 加载WLL模板后的Word界面图@@
编者注:源程序发表在本报WWW站点上,地址:http://www.computerworld.com.cn/
98/skill/default.htm。欢迎访问!
在Word中加载或卸载WLL
经过编译、链接生成DLL文件(动态连接库文件)后,必须将文件的扩展文件名.dll改为.wll,以便在加载WLL时能被Word正确识别为Word加载项。
将自己编写的WLL加载到Word中有以下几种方法:
·模板方式加载:在Word中主菜单‘文件'中找到‘模板',进去后按下‘添加'按钮,选中自己编写的WLL模板文件(文件扩展名为wll)后‘确定',加载WLL即可完成,如下图所示。
·打开文件方式加载:像打开一般的Word文档一样,打开WLL模板文件,即可完成加载
。
·Word自动完成加载:将WLL模板文件复制..\windord\startup\目录下,像Word中的常用模板一样,在启动Word时,Word会自动将WLL模板文件加载到Word中。
卸载WLL的方法只有一种:在Word中主菜单‘文件'中找到‘模板',将‘共用模板及加载项'框中‘translate.wll'前的复选钮钩掉后‘确定',卸载WLL的工作即可完成。
上一篇: 使用VBA-Excel97绘图
下一篇: 用VB5直接控制Excel 97
标签:
版权申明:本站文章部分自网络,如有侵权,请联系: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
