如何在bos单据中添加自定义的工具栏按钮及相应相关操作

 我来答
电商运营的机会
2017-06-08 · 知道合伙人互联网行家
电商运营的机会
知道合伙人互联网行家
采纳数:436 获赞数:998
潭州教育网络科技有限公司最佳电商运营总监。

向TA提问 私信TA
展开全部

首先在业务单据上单击鼠标右键,在弹出的菜单里选择“操作管理”。

随后出现如下界面:

点击“浏览”按钮选择图标,必须为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,这样就实现了上图所示的透明效果敏简,否则会显示出白色底色

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式