当前版块:问答社区 > CASS

【AutoCAD二次开发】第十一节 菜单和工具栏

'第十一节 菜单和工具栏
Sub CreateMenuExample()
  '创建菜单组
  Dim mnuGroup As AcadMenuGroup
  Set mnuGroup = ThisDrawing.Application.MenuGroups.Item(0)
  '创建新菜单
  Dim mnuTest As AcadPopupMenu
  Set mnuTest = mnuGroup.Menus.Add("测ta试(&T)")
  '创建下拉菜单,执行自编的VBA程序GETP
  Dim mnuGetP As AcadPopupMenuItem
  Dim macGetP As String
  macGetP = Chr(3) & Chr(3) & Chr(95) & _
            "-vbarun" & Chr(32) & "GETP" & Chr(32)
  Set mnuGetP = mnuTest.AddMenuItem _
               (mnuTest.Count + 1, "获取实体编码(&G)", macGetP)
  '创建分隔线
  Dim mnuSeparator As AcadPopupMenuItem
  Set mnuSeparator = mnuTest.AddSeparator("")
  '创建下拉菜单,执行AutoCAD内部命令
  Dim mnuCopy As AcadPopupMenuItem
  Dim macCopy As String
  macCopy = Chr(3) & Chr(3) & Chr(95) & "copy" & Chr(32)
  Set mnuCopy = mnuTest.AddMenuItem _
                (mnuTest.Count + 1, "&Copy", macCopy)
  '创建子菜单
  Dim mnuFather As AcadPopupMenu
  Set mnuFather = mnuTest.AddSubMenu(mnuTest.Count + 1, "父菜单")
  Dim mnuChild As AcadPopupMenuItem
  Dim macChild As String
  macChild = Chr(3) & Chr(3) & Chr(95) & "export" & Chr(32)
  Set mnuChild = mnuFather.AddMenuItem _
                (mnuTest.Count + 1, "子菜单-导出其他格式", macChild)
  '在菜单条上显示菜单
  mnuTest.InsertInMenuBar ThisDrawing.Application.MenuBar.Count + 1
  '删除菜单
  If MsgBox("是否删除COPY菜单?", vbYesNo, "AutoCAD提示") = vbYes Then
     mnuCopy.Delete
  End If
End Sub
Sub CreateToolbarExample()
  Dim mnuGroup As AcadMenuGroup
  Dim tbTest As AcadToolbar
  Dim tbCopy As AcadToolbarItem
  Dim tbPaste As AcadToolbarItem
  Dim tbSeparator As AcadToolbarItem
  Dim macCopy As String
  Dim macPasteclip As String
  Dim strPath1 As String
  Dim strPath2 As String
  Set mnuGroup = ThisDrawing.Application.MenuGroups.Item(0)
  Set tbTest = mnuGroup.Toolbars.Add("测试111")
  macCopy = Chr(3) & Chr(3) & Chr(95) & "copy" & Chr(32)
  macPaste = Chr(3) & Chr(3) & Chr(95) & "pasteclip" & Chr(32)
  Set tbCopy = tbTest.AddToolbarButton _
                (tbTest.Count + 1, "复制", "复制", macCopy, False)
  Set tbPaste = tbTest.AddToolbarButton _
                (tbTest.Count + 1, "粘贴", "粘贴", macPaste, False)
  Set tbSeparator = tbTest.AddSeparator(tbTest.Count + 1)
  '设置图标
  strPath1 = "G:\VBA\copy.bmp"
  strPath2 = "G:\VBA\copy.bmp"
  tbCopy.SetBitmaps strPath1, strPath2
  strPath1 = "G:\VBA\paste.bmp"
  strPath2 = "G:\VBA\paste.bmp"
  tbPaste.SetBitmaps strPath1, strPath2
  MsgBox "现在把工具条泊位到屏幕左边"
  tbTest.Dock acToolbarDockLeft
  MsgBox "现在把工具条浮动到指定位置"
  tbTest.Float 550, 300, 1
End Sub

全部评论

等级:LV30
积分:160
76575250@qq.com 2020-01-04 19:12
高手发的课程根本看不懂
回复 0
1
提交
悬赏回复规则
1、悬赏期为24小时,从发布时间起算;
2、悬赏期内提问者如设置评论为“精选评论”,视为悬赏结束,该精选评论人将获得本题全部悬赏积分;
3、悬赏期内如提问者未设置“精选评论”,则前5位评论者平分悬赏积分(如仅有一位评论,该评论者获得50%悬赏积分);
4、悬赏积分会自动发放到生态圈账户中,请留意站内信通知。
知道了

距离打开宝箱还剩7

是否花费200积分补签?
确认
取消