sjtd 发表于 2008-11-20 13:35:00

[求助] 如何使自己创建的工具栏 在CAD重启后不需要再运行创建宏1

我创建的栏,再CAD2007中保存不了,每次启动都要运行创建宏,请大侠,高手帮我看看问题出那里了,谢谢!
有没有高手呀。帮帮忙啦。。。。。
原代码如下::
Public Sub AddmyBar()
Dim i As Integer
    Dim currMenuGroup As AcadMenuGroup
    Dim newToolBar As AcadToolbar
    Dim openMacro(10) As String
    Dim NewButton(10) As AcadToolbarItem
    Dim smallbitmapname(10) As String
   
    Dim pathS As String
    Dim appPath As String
    appPath = ThisDrawing.Application.Path
    pathS = "\Support\Survey\Icon\"
    pathS = appPath & pathS
'创建自己标注工具栏
    Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
   
    Set newToolBar = currMenuGroup.Toolbars.Add("都成军_专用工具栏")
    newToolBar.Float 300, 300, 1

    openMacro(0) = "-vbarun" + " " + "xzFont" + " "
    Set NewButton(0) = newToolBar.AddToolbarButton(newToolBar.Count + 1, "将文字角度改为 0", "将文字角度改为 0", openMacro(0))
    '设置第1个按钮的图标
    smallbitmapname(0) = pathS & "fb.bmp"
    NewButton(0).SetBitmaps smallbitmapname(0), smallbitmapname(0)
   
    openMacro(1) = "-vbarun" + " " + "zd" + " "
    Set NewButton(1) = newToolBar.AddToolbarButton(newToolBar.Count + 1, "展临时点/摘录控制点/点位坐标标注", "展临时点,摘录控制点,点位坐标标准", openMacro(1))
      '设置第2个按钮的图标
    smallbitmapname(1) = pathS & "ATA.BMP"
    NewButton(1).SetBitmaps smallbitmapname(1), smallbitmapname(1)
   
   openMacro(2) = "-vbarun" + " " + "dcj_modi.cs" + " "
    Set NewButton(2) = newToolBar.AddToolbarButton(newToolBar.Count + 1, "平面标注、修改", "平面标注、修改", openMacro(2))
      '设置第3个按钮的图标
    smallbitmapname(2) = pathS & "XXWZ.BMP"
    NewButton(2).SetBitmaps smallbitmapname(2), smallbitmapname(2)
   
   openMacro(3) = "-vbarun" + " " + "Survey.DimDrawing.SetTextStyle" + " "
    Set NewButton(3) = newToolBar.AddToolbarButton(newToolBar.Count + 1, "更换文本字体", "更换文本字体", openMacro(3))
    '设置第1个按钮的图标
    smallbitmapname(3) = pathS & "TextStyle.bmp"
    NewButton(3).SetBitmaps smallbitmapname(3), smallbitmapname(3)
   
      openMacro(4) = "-vbarun" + " " + "swline" + " "
    Set NewButton(4) = newToolBar.AddToolbarButton(newToolBar.Count + 1, "绘制3DLINE", "绘制三维线,以确保管道实长", openMacro(4))
    '设置第1个按钮的图标
    smallbitmapname(4) = pathS & "XYZ_LINE.bmp"
    NewButton(4).SetBitmaps smallbitmapname(4), smallbitmapname(0)
   
         openMacro(5) = "-vbarun" + " " + "ljfft" + " "
    Set NewButton(5) = newToolBar.AddToolbarButton(newToolBar.Count + 1, "拼接分幅图.", "拼接分幅图.", openMacro(5))
    '设置第1个按钮的图标
    smallbitmapname(5) = pathS & "ljfft.bmp"
    NewButton(5).SetBitmaps smallbitmapname(5), smallbitmapname(5)
   
    openMacro(6) = "-vbarun" + " " + "lcjs" + " "
    Set NewButton(6) = newToolBar.AddToolbarButton(newToolBar.Count + 1, "计算里程.", "计算里程.", openMacro(6))
    '设置第1个按钮的图标
    smallbitmapname(6) = pathS & "lcjs.bmp"
    NewButton(6).SetBitmaps smallbitmapname(6), smallbitmapname(6)
   
    openMacro(7) = "-vbarun" + " " + "bgxd" + " "
    Set NewButton(7) = newToolBar.AddToolbarButton(newToolBar.Count + 1, "管线点变大变小.", "管线点变大变小.", openMacro(7))
    '设置第1个按钮的图标
    smallbitmapname(7) = pathS & "sgxd.bmp"
    NewButton(7).SetBitmaps smallbitmapname(7), smallbitmapname(7)
currMenuGroup.Save acMenuFileSource

mccad 发表于 2008-11-22 12:39:00

一般不建议在程序中创建菜单或工具栏,除非你的东西是动态的。
建议直接使用菜单文件建立这些东西。
一般程序建立的工具栏或菜单,只能当前进程有效,关了再开就没了。要重新再来。就象你运行程序道理是一样。

sjtd 发表于 2008-11-22 13:10:00

那在CAD2004中是可以的呀。

mccad 发表于 2008-11-22 17:35:00

好象从2006版本后,菜单系统就有了变化,使用了配置方式,确实麻烦了许多。
页: [1]
查看完整版本: [求助] 如何使自己创建的工具栏 在CAD重启后不需要再运行创建宏1