当前位置: 网学 > 编程文档 > VB > 正文

VB下Add-Ins的编程

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/16
下载{$ArticleTitle}原创论文样式
模块可以说是一个抽象类,也即接口;然后建立其它的类模块,在这些类模块的声明部分中,使用Implements语句表明该类实现了上述接口,接下来就可以实现接口代码(也即接口的方法)了。这种用Implements语句的方法可以说与Java语言比较相似。至于这方面的详细信息,可参看VB的帮助或联机手册。

在类模块Connect中,使用Implements IDTExtensibility语句声明该类实现了IDTExtensibility接口。因此类模块Connect中实现了该接口包括的四个方法:OnAddInsUpdate,OnConnection,OnDisconnection,OnStartupComplete的代码,例如一条语句、过程调用、注释等等。如果过程是空的话,它会被编译器删掉。如果实在没有代码可往这些过程里加的话,就插入注释。这是因为既然实现了接口,就必须提供接口的所有方法的代码。这四种方法中,比较关键的是OnConnection和OnDisconnection方法,其中OnConnection方法当一个外接程序通过“外接程序管理器”对话框或另一个个接程序与Visual BasicIDE连接时被调用。我们一般在该方法中保存当前Visual Basic会话期实例,挂接VB菜单,工具栏,或显示初始窗口,以便用户使用该外接程序。而OnDisconnection方法当外接程序通过编程或“外接程序管理器”对话框与Visual BasicIDE分离时被调用。我们一般在该方法中卸掉菜单、工具栏、程序窗体,以及做保存设置等工作。

(2)挂接Visual BasicIDE菜单

在接口IDTExtensibility的OnConnection方法代码中,一般来说大多数情况下需要挂接Visual BasicIDE菜单(当然也可以是工具栏),以便用户可随时使用该程序。挂接菜单的代码如下:

Set MCBmenuCommandBar = AddToAddinCommandBar ("My Addin")

''sink the event

Set Me.MenuHandler=

VBinst.Events.CommandBarEvents (mcbMenuCommandBar)

其中AddToAddInCommandBar 函数的代码如下:

Function AddToAddInCommandBar (sCaption As String)As-Office.CommandBarControl

Dim cbMenuCommandBar As Office.CommandBarControl

Dim cbMenu As Object

On Error Go To AddToAddInCommandBarErr

''see if we can find the Add-ins menu

Set cbMenu=Vbinstance.CommandBars ("Add-ins")

If cbMenu is Nothing Then

''not available so we fail

Exit Function

End if

''add it to the command bar

Set cbMenuCommandBar=cbMenu.Controls.Add(1)

''set the caption

cbMenuCommandBar.Caption =sCaption

Set AddToAddInCommandBar = cbMenuCommandBar

Exit Function

AddToAddInCommandBarErr:

End Function

写上面的代码中,mcbMenuCommandBar变量定义为:

Dim mcbMenuCommandBar As Office.CommandBarControl

MenuHandler变量定义为:

Public WithEvents MenuHandler As CommandBarEvents

这里需要指出的是,MenuHandler是WithEvents变量,凡是WithEvents变量均表明该变量是一个用来响应由ActiveX对象触发的事件的对象变更。也就是说,该变量是拥有事件的,因此可以编写该变量的事件代码。在上述代码中将事件对象VBInst.Events.Comman-dBarEvents(mcbMenuCommandBar)赋予MenuHandler变量,则表示当发生有关mcbMenuC-ommandBar菜单项的事件时,由该变量的代码进行处理。在类模块中,我们发现,就存在MenuHandler-Click事件代码,该代码用以显示窗体对话。

在AddToAddInCommandBar函数中,VBInstance是在OnConnection方法保存的会话期实例,所有Add-Ins的调用都需要此实例。使用VBInstance. CommandBars(“Add-Ins”)将获得Add-Ins菜单条对象(在中文VB5下是“外接程序”菜单条),请注意:该“Add-Ins”是不会本地化的,因此无论是在中文还是英文VB5下抱歉获得上菜单条对象。代码Set cbMenuCommandBar=cbMenu.Controls.Add(1)在该菜单下添加一新

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号