乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 71|回复: 7

[编程交流] 创建32 x 32图标和按钮

[复制链接]

3

主题

28

帖子

25

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 12:03:25 | 显示全部楼层 |阅读模式
我引用了AutoCAD中的帮助文件:“可以创建两种不同大小的自定义图像:小图像和大图像。小图像应为16 x 16像素。大图像应为32 x 32像素。与这些大小不匹配的图像将按比例缩放。”
 
现在,我们如何创建一个32x32像素的图标按钮呢。我能做的就是16x16。我单击“仅大”和“两者”,似乎什么都不起作用。方法是什么?还有其他编辑吗?我创建了一个。在Autocad外部的32x32中导入bmp。它是16x16。为什么?为什么内部。AutoCAD中的BMP看起来很好,我不能创建这样的BMP?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:13:45 | 显示全部楼层
这似乎有效
 
  1. (defun Put_BitMap (tbutt sml lrg / tbutt)
  2. (vl-load-com)
  3. (setq tbutt (strcase tbutt))
  4. (vlax-for Men (vla-get-MenuGroups (vlax-get-acad-object))  [color=Red][b];; Cycle through MenuGroups[/b][/color]
  5.    
  6.    (vlax-for Tool (vla-get-Toolbars Men)  [color=Red][b];; Cycle through Toolbars[/b][/color]
  7.      (vlax-for Butt Tool  [b][color=Red];; Cycle through Buttons[/color][/b]
  8.      
  9.        (if (eq tbutt (strcase (vla-get-Name Butt)))  [b][color=Red];; If button name matches[/color]
  10. [/b]
  11.          (vla-SetBitmaps Butt sml lrg))))))  [b][color=Red];; Set the BitMaps[/color][/b]
  12.       
  13. (defun c:test ()
  14. (put_bitMap "Command1" [b][color=Red];; Button Name[/color][/b]
  15.              "C:\\Users\\Lee Mac\\Pictures\\Untitled.bmp"   [b][color=Red];; Small Bitmap filepath[/color][/b]
  16.              "C:\\Users\\Lee Mac\\Pictures\\Untitled2.bmp") [b][color=Red];; Large Bitmap filepath[/color][/b]
  17. (princ))
回复

使用道具 举报

3

主题

28

帖子

25

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 12:27:26 | 显示全部楼层
Mac先生或李:
我加载了例程。输入:测试
很多东西以接近光速在屏幕上滚动。我不知道发生了什么,但确实发生了什么。添加一些旧的;这样做,并且;这会影响到你日常生活中的每一行。我不完全理解这是如何转换或允许我创建32x32的。自定义命令上按钮的bmp文件。细节和解释会很有帮助。谢谢你,先生。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:32:33 | 显示全部楼层
对不起,怀特博士,我无意中在那里留下了一张打印纸。。。代码已更新
 
您需要为sub(Put_位图)提供按钮的名称(例如“Command1”),以及大小位图的文件路径,并且应该将它们分配给按钮(如果找到按钮)。
 
回复

使用道具 举报

3

主题

28

帖子

25

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 12:45:50 | 显示全部楼层
所以我必须把每个按钮(或.bmp文件)的名称放在例程中(有正确的路径),这个例程会把它们转换成大按钮吗?为什么当我打开Autocad bmp时,无论我在“大”或“小”上选择什么,它都只显示小尺寸?如果我将选项按钮更改为大图标,这会有影响吗?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:49:28 | 显示全部楼层
嗨,怀特博士,
 
对于多个位图,可能是这样的:
 
  1. (defun Put_BitMap (lst / lst tag)
  2. (vl-load-com)
  3. (setq lst (mapcar
  4.              (function
  5.                (lambda (x)
  6.                  (list (strcase (car x)) (cadr x) (caddr x)))) lst))
  7. (vlax-for Men (vla-get-MenuGroups (vlax-get-acad-object))
  8.    
  9.    (vlax-for Tool (vla-get-Toolbars Men)
  10.      (vlax-for Butt Tool
  11.      
  12.        (if (setq tag (assoc (strcase (vla-get-Name Butt)) lst))
  13.          (vla-SetBitmaps Butt (cadr tag) (caddr tag)))))))
  14.       
  15. (defun c:test nil
  16. (put_bitMap '(("Command1" "C:\\Small.bmp" "C:\\Large.bmp")
  17.                ("Command2" "C:\\Small.bmp" "C:\\Large.bmp")
  18.                ("Command3" "C:\\Small.bmp" "C:\\Large.bmp")
  19.                ("Command4" "C:\\Small.bmp" "C:\\Large.bmp")
  20.                ("Command5" "C:\\Small.bmp" "C:\\Large.bmp")
  21.                ("Command6" "C:\\Small.bmp" "C:\\Large.bmp")))
  22. (princ))

 
如果在“选项”对话框中放置“使用工具栏的大按钮”,则应显示大位图。
回复

使用道具 举报

3

主题

28

帖子

25

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 13:00:31 | 显示全部楼层
对于工具栏,这是可以理解的。用于带有按钮的自定义命令。bmp分配给它的,不是。我想我只是没有掌握你例程的语法,但是怎么做呢
(命令c:\\small.bmp c:\\large.bmp)(去掉所有引号)行吗?它正在重命名吗。bmp文件?这只适用于工具栏吗?我不希望它用于工具栏。我想要它的按钮编辑。查看CUI中用于AutoCAD自定义的按钮图标。看看这些按钮是如何拥有所有底纹和精细细节的?这仅适用于32x32像素。BMP。AutoCAD中只提供了一个16x16的网格框。如何将其变成32x32网格盒?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:03:42 | 显示全部楼层
 
程序查找名为“Command1”的按钮,并将小位图作为第一个文件名,将大位图作为第二个文件名。
 
我不知道如何获得大位图的编辑框,但这对我设置大小位图很有用。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-5 10:09 , Processed in 0.510466 second(s), 68 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表