1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > CorelDRAWX4的VBA插件开发(四十六)VBA插入启动事件让CDR启动时检测并自动添加工具栏和按钮

CorelDRAWX4的VBA插件开发(四十六)VBA插入启动事件让CDR启动时检测并自动添加工具栏和按钮

时间:2022-02-02 22:05:54

相关推荐

CorelDRAWX4的VBA插件开发(四十六)VBA插入启动事件让CDR启动时检测并自动添加工具栏和按钮

先上结果图,这个工具栏和按钮都是主程序自动生成的

在程序的运行当中,如果我们希望程序能够自己创建工具栏和按钮,可以在CDR启动事件中设置一个检测功能

Private Sub GlobalMacroStorage_Start()Dim creatTool As Boolean: creatTool = TrueFor Each Item In mandBarsIf Item.Name = "theTestTool" ThencreatTool = FalseEnd IfNextIf creatTool ThenCorelDRAW.AddPluginCommand "GlobalMacros.A.theBtr", "theBtr", "theBtr"mandBars.Add "theTestTool"With mandBars.Item("theTestTool").Visible = True.Controls.AddCustomButton cdrCmdCategoryMacros, "GlobalMacros.A.theBtr"End WithEnd IfEnd SubSub theBtr()MsgBox "测试成功"End Sub

我们可以看到上图中在GlobalMacroStorage中,可以在右侧的下拉列表当中看到非常多的响应事件,我们选取start就是在CDR主程序在启动完毕的时候会执行所有GlobalMacroStorage_Start函数,这个函数名是固定的,不能随便更改函数名,更改了就不会正常运行,这个函数会在启动之后运行一次,如果其它的GMS里面的主页面里也有这个函数,那么主程序也会去执行这个函数,所以这个函数在写完后要重启CDR才会生效这个自动生产的函数是Private的,也就是说这个函数默认就是私有的.首先使用遍历for each功能浏览一遍所有的工具栏的名称,如果没有我们这个工具栏同名则进行新建,工具栏取名theTestTool那我们讲一下这里头最关键的地方就是AddPluginCommand这个函数了,这个函数有三个参数,一旦被建立之后就是无法修改的,所以我们必须要在这个时候就把这个三个参数确立好,头一个参数就是这个按钮的主调函数名称,这个名称如果填错了,那么我们按下了按钮程序是没有任何反应的,可以看到我填的是GlobalMacros.A.theBtr,为什么是这样子的名称呢,因为这个就是我们需要调用的函数的全路径,GlobalMacros来自于下图中的左上角文件的名称,这个是可以自己修改的,你改的是什么,这里就要相应地修改成什么

A则来自于页面名称如下图

最后一个名称则是定位到具体的函数,所以这个名称GlobalMacros.A.theBtr的由来如下图所示

这样子就叫作函数绑定,那么两个这个函数绑定好了,那么程序还有重要的一步要做,那就是必须把这个按钮的模式设置成macros模式,与之相对应的则是plugin模式,这两种模式是有一定区别的,macros是VBA的宏模式,plugin模式则是自定义的模式,可以自己定义很多功能,并且会占用一些计算资源,我们这里用的就是VBA,那么就尽量用原本的macros模式, 因为这本来就是为VBA设计的所以在后面添加这个按钮的时候我们使用AddCustomButton函数,第一个参数就是使用macros模式 cdrCmdCategoryMacros 后面接上按钮的commandID也就是函数路径这些全都做好之后,我们可以开始写被调函数Sub theBtr()了,我们随便在里面写一个弹窗,写完后我们重启CDR,可以看到效果,我们成功了

附带说一下Visible = True就是让这个工具栏不要隐藏

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。