如何在bos单据中添加自定义的工具栏按钮及相应相关操作
首先在业务单据上单击鼠标右键,在弹出的菜单里选择“操作管理”。
随后出现如下界面:
点击“浏览”按钮选择图标,必须为ico格式,16×16,256色。
第二种、在插件的m_BillInterface_MenuBarInitialize事件中写代码实现。
Private Sub m_BillInterface_MenuBarInitialize(ByVal oMenuBar As K3ClassEvents.MenuBar)
Dim oTool As K3ClassEvents.BOSTool
Dim oBand As K3ClassEvents.BOSBand
'*************** 开始新增 BOS 菜单 ***************
'新增 mnuChangePassword 菜单对象,并设置属性
Set oTool = oMenuBar.BOSTools.Add("mnuChangePassword")
With oTool
.Caption = "设置会员卡密码"
.ToolTipText = "设置会员卡密码"
.Description = "密码"
.ShortcutKey = 0
.Visible = True
.Enabled = True
.BeginGroup = True
.ToolPicture = "你的图标文件完整路径"
.SetPicture 0, vbWhite
End With
第二种方法比较灵活,但是存在一个问题:当把插件发布出去后,客户机不大姿会有你设定的图标文件,导致工具栏按钮一片空白。因此,我们需要解决的是,图标文件集成到插件当中,随插件走。
那么最好的办法,莫过于使用资源文件了。
于是将图标打包进资源文件,同时修改代码如下:
With oTool
.Caption = "设置会员卡密码"
.ToolTipText = "设置会员卡密码"
.Description = "密码"
.ShortcutKey = 0
.Visible = True
.Enabled = True
.BeginGroup = True
.ToolPicture = LoadResPicture(1003, 1)
.SetPicture 0, vbWhite
End With
现在编译运行,发现仍然是空白一片。是滚拿绝资源没有载入吗?经过测试, LoadResPicture(1003, 1)确实已经把图标读取出来了,但是BOS工具栏没有识别出来。再仔细看原来的代码,.ToolPicture = "你的图标文件完整路径",发现问题了,.ToolPicture实际上是一个字符串,而 LoadResPicture(1003, 1)返回的是图像,数据类型不一致。
所以继续做如下修改:
With oTool
.Caption = "设置会员卡密码"
.ToolTipText = "设置会员卡密码"
.Description = "密码"
.ShortcutKey = 0
.Visible = True
.Enabled = True
.BeginGroup = True
.SetPicture2 LoadResPicture(1003, 1), 0, vbWhite
End With
测试成功。
备注:1、用SetPicture2可以突破仅能使用ico格式的限制,如本例,我使用的就是bmp格式的资源。
2、因为VB6的ico、BMP格式不能使用真彩色,但可以将真彩素材放到自定义资源中,然后再释放使用,这就进一步突破了256色的限制。
3、vbWhite参数是指MaskColor,可以实现透明处理。比如我的bmp文件背景色都是白色,因此设置为vbWhite,这样就实现了上图所示的透明效果敏简,否则会显示出白色底色
广告 您可能关注的内容 |