Word编程中,事件的作用和顺序
2004-10-09 14:11
225 查看
在打开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带来的(按照我们跟踪的结果
4000
,应该是.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里面进行调用的话,这个函数的名称最好全部用小写,否则转换上会出麻烦。
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带来的(按照我们跟踪的结果
4000
,应该是.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里面进行调用的话,这个函数的名称最好全部用小写,否则转换上会出麻烦。
相关文章推荐
- 用Ole Automation实现Delphi和AutoCad之间的数据交换
- 我的应聘总结!
- 如何用VB获得机器的MAC地址
- 一个非常不错的业务规则管理器
- 在做控件的存取控制时碰到的问题,请教各位!
- Struts tags (2) ----Bean(1)
- ofbiz(open for business),银弹?人狼?
- 4年程序员感悟
- 一个画图类,类似ms_chart的线图,适用于科学仿真数据分析(一)
- 好久没来CSDN了,因为一直在忙考试....
- Java的中文编程与配置心得
- 看到一篇好文章与大家分享!!!!!
- 2004/10/08第一天到东软南京研发中心兼职
- Thinking in C++ 卷2中文版
- 初学者的问题----csdn系列
- DOM心得
- BLOG开张,不知道该说些什么。
- SymbianOS Series 60学习笔记一: HelloWorld之晕
- SymbianOS Series 60学习笔记二:ListBox控件
- ejb3.0改进给我带来的一点感受