定义工具栏按钮图像

AutoCAD ActiveX/VBA

 
定义工具栏按钮图像
 
 
 

要定义工具栏按钮上的图像,请使用 SetBitmaps 和 GetBitmaps 方法。

SetBitmaps 方法需要两个参数:SmallIconNameLargeIconName

SmallIconName

小图标名称用于标识小图像资源(16×15 位图)的 ID 字符串。该字符串必须由字母数字字符组成,不能包含划线 (-) 或下划线 (_)以外的标点,并且应该包含 .bmp 扩展名。资源可以是系统位图,也可以是用户定义的位图。用户定义的位图必须大小适中,而且必须位于 Support 路径中。

LargeIconName

大图标名称用于标识大图像资源(24×22 位图)的 ID 字符串。该字符串必须由字母数字字符组成,不能包含划线 (-) 或下划线 (_)以外的标点,并且应该包含 .bmp 扩展名。资源可以是系统位图,也可以是用户定义的位图。用户定义的位图必须大小适中,而且必须位于 Support 路径中。

查询现有工具栏以查找按钮的图标名称

Sub Ch6_GetButtonImages()
    Dim Button As AcadToolbarItem
    Dim Toolbar0 As AcadToolbar
    Dim MenuGroup0 As AcadMenuGroup
    Dim SmallButtonName As String
    Dim LargeButtonName As String
    Dim msg As String
    Dim ButtonType As String
      
    ' 获取第一个菜单组中的第一个工具栏
    Set MenuGroup0 = ThisDrawing.Application. _
                                 MenuGroups.Item(0)
    Set Toolbar0 = MenuGroup0.Toolbars.Item(0)
      
    ' 清除字符串变量
    SmallButtonName = ""
    LargeButtonName = ""
      
    ' 创建消息框的标题并
    ' 显示要查询的工具栏
    msg = "Toolbar: " + Toolbar0.Name + vbCrLf
    Toolbar0.Visible = True
      
    ' 遍历工具栏并收集工具栏中
    ' 每个按钮的数据。如果工具栏是
    ' 普通按钮或弹出按钮,则收集按钮的
    ' 小按钮名称和大按钮名称。
    For Each Button In Toolbar0
        ButtonType = Choose(Button.Type + 1, "Button", _
                        "Separator", "Control", "Flyout")
        msg = msg & ButtonType & ": "
        If Button.Type = acToolbarButton Or _
                       Button.Type = acToolbarFlyout Then
            Button.GetBitmaps SmallButtonName, _
                              LargeButtonName
            msg = msg + SmallButtonName + ", " _
                      + LargeButtonName
        End If
        msg = msg + vbCrLf
    Next Button
      
    ' 显示结果
    MsgBox msg
End Sub