分享

20.2.4 控件回调函数

 土尔 2011-03-24

20.2.4  控件回调函数

在自定义RibbonX时,可在XML中通过控件的不同属性设置控件。但是,在更多的情况下,需要程序在运行时修改控件的属性。这时,可使用控件的回调函数。

在RibbonX中提供了回调函数功能,可在运行时动态修改控件的属性。每个控件可有多个回调函数,可分别动态修改控件的相应属性。设置回调函数属性以get字符开头,紧跟着相应的属性名。例如,要动态修改控件的label属性,则用属性getLabel设置回调函数。使用属性getItemImage设置的回调函数可在程序运行时修改控件的图像。

还有3个不是按这种方式命名的属性,也可用来设置回调函数。

onLoad:用在XML文件的最外层元素<customUI>中,当Office开始装载RibbonX时将调用该属性指定的回调函数。

onAction:当单击控件时,调用该属性指定的VBA过程,可应用到<button>、<toggleButton>、<checkBox>、<dropdown>和<gallery>控件。

onChange:当控件中的文本改变时,调用该属性指定的VBA过程,可应用到<editBox>和<comboBox>控件。

例如,以下XML代码定义一个<button>控件,并指定单击按钮时调用名为showmsg的VBA过程。

 

<button id="b1"  imageMso=" HappyFace"  size="large"
label="测试"  onAction="showmsg"/>
在Excel工作簿中,编写一个名为showmsg的过程,执行相应的功能即可。
Sub showmsg(control As IRibbonControl)
MsgBox "您单击了"测试"按钮!"
End Sub

从上面的代码可以看出,在VBE中编写回调函数时,过程定义部分需要指定参数。不同的回调函数的参数数量不同,下面介绍定义回调函数子过程的结构。

1.onLoad属性设置回调函数

onLoad属性只能在XML文件的最外层元素<customUI>中使用,该属性设置系统装载自定义RibbonX时执行的回调函数名称,在程序中只能通过该回调函数获取RibbonX对象的引用。onLoad属性指定的回调函数的过程结构如下:

Sub 过程名(ribbon As IRibbonUI)

2.onAction属性设置回调函数

在XML中用控件的onAction属性指定回调函数,针对不同控件有不同的子过程结构。

控件为<button>时,onAction属性指定的回调函数的过程结构如下:

Sub 过程名(ByRef  Control  As  IRibbonControl)
            
控件为<checkBox>和<toggleButton>时,onAction属性指定的回调函数的过程结构如下:
Sub 过程名(ByRef  Control  As  IRibbonControl, ByRef  Pressed  As  Boolean)
控件为<dropDown>和<gallery>时,onAction属性指定的回调函数的过程结构如下:
Sub 过程名(ByRef  Control  As  IRibbonControl,
ByRef  SelectedID  As  String,_
ByRef  SelectedIndex  As  Integer)

3.onChange属性设置回调函数

控件为<editBox>和<comboBox>时,onChange属性指定的回调函数的过程结构如下:

Sub 过程名(ByRef  Control  As  IRibbonControl,ByRef  Text  As  String)
            

4.其他get类属性设置回调函数

通过属性getItemID、getItemImage、getItemLabel、getItemScreentip、getItemSupertip指定的回调函数的过程结构如下:

Sub 过程名(ByRef  Control  As  IRibbonControl,
ByRef  Index  As  Integer, _
ByRefReturnValue As Variant)
除前面列出各属性设置的回调函数外,其他get属性(包括getContent、getDescription、getEnabled、getImage、getItemCount、getItemHeight、getItemWidth、getKeytip、getLabel、getPressed、getSize、getScreentip、getSelectedItemID、getSelectedItemIndex、getShowImage、getShowLabel、getSupertip、getText、getTitle、getVisible等属性)指定的回调函数的过程结构如下:
Sub 过程名(ByRef  Control  As  IRibbonControl,
ByRef  ReturnValue  As  Variant)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章