关于处理图像按钮和磁贴 (DCL)
您可以简单地将图像按钮作为按钮进行处理,也就是说,您可以使用它来触发单个操作。 注意:AutoLISP 中的 DCL 支持仅限于 Windows。
但是,您也可以使用 PDB 功能来定义按钮的区域。定义区域后,所执行的操作取决于用户选择的图像按钮部分。其机制很简单:图像按钮的操作或回调返回用户选择的 (X,Y) 位置。坐标在特定图像按钮磁贴的范围内(由尺寸函数返回)。应用程序必须通过隐式定义图像的区域来分配选择位置的含义。“DDVPOINT”对话框充分利用了此功能。您可以通过运行 AutoCAD DDVPOINT 命令来查看此内容。 在以下示例中,图像按钮具有两个由 创建的色板。您希望选择其中之一,具体取决于用户选择的区域。如果图像按钮是水平分割的(上面是深色的,下面的是浅色),则您的操作只需要测试一个维度:fill_image (action_tile "image_sel" "(pick_shade $key $value $y)") ... (defun pick_shade (key val y) (setq threshold (/ ( dimy_tile key) 2)) ;Image is divided horizontally. (if (> y threshold) ;Remember that the origin is at (setq result "Light") ;upper left. (setq result "Dark") ) ) 父主题: |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2024-12-15 12:46
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.