首页 > 开发 > 综合 > 正文

Word编程中,事件的作用和顺序

2024-07-21 02:16:19
字体:
来源:转载
供稿:网友
在打开word一直到打开文档,这个过程中,各个发生的时间顺序会稍有不同,我们举一个常用的代码段进行解析:
dim wordapp as object
dim worddoc as object

set wordapp=createobject("word.application")
wordapp.visible=true
set worddoc=wordapp.documents.open("kk.doc")

那么,时间顺序如下:
1、application的windowactivate事件:这个比较好理解,首先word.application的窗口获得了焦点;不过不是很清楚到底是.visible=true带来的,还是createobject带来的(按照我们跟踪的结果,应该是.visible=true造成的);
2、application的documentopen事件:在采用代码打开文档的时候,相应的就发生了documentopen事件,这个事件针对document发生,所有如果需要对文档进行什么检查的话,放在这个documentopen事件里,是最恰当不过的了;
3、application的documentchange事件:这个事件不针对document发生,所以它也比较特殊,即使是在没有文档的窗口里,只要你切换了word窗口,它就会发生,但是他的发生条件是:
3.1.从一个文档切换成另外一个文档;
3.2.没有文档的窗口被激活的时候(这点比较特殊,当具备文档的窗口重新获得焦点的时候,发生的事件居然是windowactivate,而不是documentchange事件);

其他的事件,就不需要罗嗦了,这些事件中,documentopen事件发生一次,而windowactivate事件和documentchange事件经常发生;

补充:在word.application中有文档的时候,将焦点切换到其他窗口,再次回到这个word文档窗口的时候,documentchange事件不会发生;但是在word.application中没有文档的时候,每次切换回到word窗口,都会发生documentchange事件;

补充1:编写的comaddins接口中,通过wordapp.comaddins.item(progid).object=me,可以将addins编写成从外部调用的一种类型,也就是说:可以从程序外部调用addins中的公用函数。不过需要特别注意的是,如果想从js、vc里面进行调用的话,这个函数的名称最好全部用小写,否则转换上会出麻烦。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表