大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 程序开发 -> 使用插件功能扩展VB

使用插件功能扩展VB

时间: 2021-07-31 作者:daque

纲要:正文经过范例引见怎样开拓一个vb的插件来扩充vb的运用。囊括怎样实行插件与vb开拓情况的贯穿,遏制vb开拓情况,以及扼要引见插件东西的构造。  作品实质  一、插件引见  从构造上去看,一个vb插件本质上是一个com组件,规则上组件不妨运用扶助com的开拓东西,比方delphi、vc来编写。组件经过实行com中的idtextensibility东西来创造与vb的贯穿。组件备案此后,当vb运转中在add-in菜单中承载组件后,vb就会挪用组件中idtextensibility东西中的相映本领(如在承载组件后会挪用onconnection本领)。这时候所有插件就变成vb的一局部进而不妨考察vb开拓情况中的百般东西和资源了。  运用vb自己来编写插件是一个很好的方法,开始经过vb不妨赶快创造一个idtextensibility东西框架(固然在vb中不叫这个称呼);其次vb对于所有开拓情况都供给了相映的东西供插件考察和遏制,而运用插件的重要手段即是经过插件来遏制宿主步调;结果是调节和测试格外的简单,不妨径直运转看截止,不须要编写翻译备案。   二、创造步调框架  开始咱们来创造步调框架,以次的代码和证明都是运用win2k+vb6华文企业版实行的,在vb英文版以及win9x下运转经过不过步调中对于界面包车型的士证明按照各别的vb会有各别。  翻开vb,点击菜单中的 文献 | 兴建 项,在 兴建工程 窗口中采用"外接步调" 项(在英文版中是addin),而后点击决定按钮创造插件工程。  创造结束后在工程列表窗口中不妨看到新工程的称呼为myaddin。个中包括两个东西,在窗体类中包括frmaddin窗体,在安排器类中包括connect安排器东西。vb仍旧为插件创造了一个基础框架,底下按f5运转插件并将vb主窗口最小化。而后再翻开一个vb步调,在个中创造一个规范 exe工程。点击菜单的 外接步调 | 外接步调处置器 项。在翻开的外接步调处置器窗口的列表中不妨看到个中有一个my add-in 项,点击该项,而后将底下 加载动作(英文版中是load behavior) 地区中的三个复选框都选中后点击决定按钮承载插件。而后再点击"外接步调" 菜单,再点击个中新增添的 my addin 项。不妨看到插件弹出一个窗体,点击"决定"按钮不妨赢得vb运转的目次,点击"废除"按钮封闭窗体。  接下来再次翻开外接步调处置器窗口。选中 my add-in项,将 加载动作 地区中的三个复选框中的对勾去掉。而后回到运转插件的vb步调,点击遏止按钮遏止插件的实行。  回到插件工程中,咱们重要来看connect东西,翻开connect东西的代码窗口。不妨看到个中包括两个东西:addininstance和menuhandler。个中addinstance是工程中实行同vb接口的东西。在步调中对应addinstance包括两个本领:onconnection和ondisconnection。在这边咱们称它们为本领而不是事变,是由于它们是由vb挪用而不是由某个动静激励而由体例挪用的。  onconnection本领在插件承载使被挪用,个中的参数application是挪用插件的vb范例东西。这个东西是一个vbe类东西。由vb传播给插件插件就不妨经过application东西考察和遏制挪用本人的vb范例。个中比拟要害的是这一段:  if connectmode = ext_cm_external then    me.show  else    set mcbmenucommandbar = addtoaddincommandbar("addinsample")    set me.menuhandler = vbinstance. events. commandbarevents (mcbmenucommandbar)  end if在上头的步调段中,开始经过connectmode来确定插件被承载的办法,即使是否经过外部步调启用的话,开始挪用addtoaddincommandbar本领增添一个菜单项到 外接步调 菜单栏。增添了菜单项后,插件步调还必需不妨相应对菜单的点击做相应,vb扶助插件对自己的很多事变监察和控制,囊括点击菜单、东西栏按钮、打动工程、增添/简略工程中的文献之类。对应每一种事变,vb范例都包括有一个相映的事变东西。东西不妨经过vb范例东西的events属性赢得大概树立。在插件步调中不妨事前设置一个事变东西并编写好东西的事变相应代码,而后将该东西付与vb范例东西中的相映事变东西。在上头的步调中,须要插件监察和控制对增添的菜单项的点击事变,那么开始在步调中开始设置了一个with events的东西menuhandler。并在步调中编写东西的click事变代码,而后在onconnection本领顶用  set me.menuhandler = vbinstance.events.commandbarevents(mcbmenucommandbar)将menuhandler设定于创造的菜单东西的事变东西,那么当在vb中式点心击 my add-in项后,vb就会挪用menuhandle的click事变代码。三、完备步调从上头的领会不妨得悉,步调框架实行了vb与插件间的接口和插件监察和控制vb事变。接下来要实行插件对vb的遏制在vb挪用插件东西的onconnection本领时,会将自己动作一个vbe东西传播给插件供考察及操纵。vbe东西是vb范例的根东西,其下包括以次5类基础的东西汇合:vbprojects汇合:经过该汇合不妨考察vb范例中所包括的工程。windows汇合:经过该汇合不妨考察一切的窗口,囊括控件栏、属性栏以及工程中的窗体等。codepanes汇合:经过该汇合不妨考察一切的代码窗口。不妨赢得代码窗口中的代码以及变换个中的代码。commandbars 汇合:经过该汇合不妨考察vb范例中的一切吩咐栏,囊括扶助赶快菜单的吩咐栏。events 汇合:经过该汇合插件不妨考察vb中的一切事变东西。底下的步调咱们要实行的是:当点击 my-addin菜单时,在暂时工程中增添一个模块并在个中增添一个子步调,并让用户采用在工程中的窗体中采用一个窗体增添一个commandbutton控件,并向窗体的代码窗口写入代码使得点击commmandbutton控件就实行增添的子步调。打动工程中的frmaddin窗体,在个中增添一个commandbutton控件和一个listbox控件。在frmaddin的load事变中增添如次代码:dim mcop as object    '赢得暂时启用工程中的一切东西  for each mcop in vbinstance.vbprojects.startproject.vbcomponents    '即使东西是窗体典型就将其增添到listbox中    if mcop.type = vbext_ct_vbform then      list1.additem mcop.name    end if  next    if list1.listcount <1 then     msgbox "工程中没有增添控件的窗体"    connect.hide  else    list1.listindex = 0  end if  command1.caption = "add code"在command1的click事变中增添如次代码:dim xcomp as vbcomponent  dim xmodule as vbcomponent  dim xform as vbform  dim xcontrol as vbcontrol  dim xcode as codemodule    '赢得用户采用的窗体东西  set xcomp = vbinstance.vbprojects.startproject.vbcomponents(list1.list(list1.listindex))  '赢得窗体安排器东西  set xform = xcomp.designer    '增添一个commandbutton到窗体上  set xcontrol = xform.vbcontrols.add("vb.commandbutton")  '设定控件的称呼  xcontrol.properties("name") = "cmdbutton"  '增添控件的click事变代码  xcomp.codemodule.createeventproc "click", "cmdbutton"    '增添一个新模块到工程中  set xmodule = vbinstance.vbprojects.startproject.vbcomponents.add(vbext_ct_stdmodule)  '设定模块称呼  xmodule.properties("name") = "modultemp"  '赢得东西的代码东西  set xcode = xmodule.codemodule    dim astr as string    '增添mclick子步调到新模块中  astr = "public sub mclick()" + chr(13) + chr(10) + _      chr(vbkeytab) + "msgbox ""you click a button!""" + chr(13) + chr(10) + _      "end sub"  xcode.addfromstring astr    dim lcount as long    '在cmdbutton的click事变中增添实行mclick子步调  lcount = xcomp.codemodule.procbodyline("cmdbutton_click", vbext_pk_proc)  if lcount <> 0 then    xcomp.codemodule.insertlines lcount + 1, "mclick"  end if  运路途序,再次翻开另一个vb步调创造一个规范exe工程。并承载 my addin插件,点击菜单的 my addin项,而后在弹出窗口中采用工程中的一个窗体,而后点击 add code 按钮,不妨看到工程中新增添了一个moduletemp模块,而且你采用的窗体中增添了一个commandbutton按钮。经过前方的引见以及上头代码的解释,断定大师对于插件怎样经过vbe东西遏制vb大概有一个比拟基础的领会了。  上头的步调不过基础的引见了vb插件的实行。经过完备不妨产生一个功效完备的插件步调,比方你不妨将所积聚很有年的代码生存到一个文献中,而后经过一个插件让用户不妨简单的采用增添她们所须要的局部到本人的步调中。  上头即是作品的全实质,即使大师在编制程序上面有什么题目,欢送到我的站点www.applevb.com上同我一道商量

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.