第12章-对话框设计--清华CAD二次开发-LISP_第1页
第12章-对话框设计--清华CAD二次开发-LISP_第2页
第12章-对话框设计--清华CAD二次开发-LISP_第3页
第12章-对话框设计--清华CAD二次开发-LISP_第4页
第12章-对话框设计--清华CAD二次开发-LISP_第5页
已阅读5页,还剩143页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第 12 章章 对话框设计对话框设计 12.112.1概述概述1. 对话框的特点对话框的特点 对话框形象、直观,可以随意输入、随时修改,鼠标、键对话框形象、直观,可以随意输入、随时修改,鼠标、键盘并用,是一种深受用户欢迎的界面。盘并用,是一种深受用户欢迎的界面。 对话框用对话框用DCL语言(语言(Dialog Control Language)定义,得到)定义,得到DCL类型的文件,用类型的文件,用AutoLISP或或C程序驱动。程序驱动。 AutoCAD提供了两个重要的提供了两个重要的DCL文件:文件: ACAD.DCL存放存放AutoCAD系统定义的对话框,系统定义的对话框, BASE.

2、DCL为用户提供了一些为用户提供了一些常用的对话框标准控件。常用的对话框标准控件。2. 2. 对话框的组成对话框的组成 对话框由若干控件组成,见图对话框由若干控件组成,见图12-112-1。控件可以是按钮、切。控件可以是按钮、切换开关、编辑框、列表或图像等。换开关、编辑框、列表或图像等。 图图12-112-1对话框的组成对话框的组成 图像按钮图像按钮弹出列表弹出列表滑动条滑动条编辑框编辑框按钮按钮图像图像互锁按钮互锁按钮切换开关切换开关文本文本3. 3. 实例实例【例例12-112-1】用用DCLDCL定义一个简单的对话框。定义一个简单的对话框。 进入进入VLISPVLISP环境,将下列源代码

3、输入到文本编辑窗口,选取下拉菜单环境,将下列源代码输入到文本编辑窗口,选取下拉菜单T ToolsoolsI Interface Toolnterface ToolPreview DCL in Preview DCL in E Editorditor,即可看到图,即可看到图12-212-2所示该所示该对话框的外观。对话框的外观。sample:dialog sample:dialog label = label = 简单的对话框实例简单的对话框实例;:text label = :text label = 祝您成功!祝您成功!;: :buttonbutton key = accept; key =

4、accept; label = label = 确认确认; is_default = true; is_default = true; fixed_width = true; fixed_width = true; alignment=centered; alignment=centered; 图图12-2 12-2 简单的对话框实例简单的对话框实例12.2 12.2 对话框控件对话框控件 控件是构造对话框的元件。控件是构造对话框的元件。AutoCADAutoCAD为用户预定义了为用户预定义了2323种控种控件和件和8 8个常用的固定控件。每一种控件属于一种类型。每一个控个常用的固定控件。每一

5、种控件属于一种类型。每一个控件有多个属性。每个属性都有一个名字和值。多数的属性都有件有多个属性。每个属性都有一个名字和值。多数的属性都有它的默认值。一个控件具有哪些属性是由它的类型所决定的。它的默认值。一个控件具有哪些属性是由它的类型所决定的。控件的这些属性确定了它的外观形式和动作行为。控件的这些属性确定了它的外观形式和动作行为。 例如上例中的例如上例中的 确认确认 按钮,它的类型是按钮,它的类型是buttonbutton。当它的属性。当它的属性label = label = 确认确认 、key = acceptkey = accept、is_default = trueis_default

6、= true、fixed_width = truefixed_width = true、alignment = centeredalignment = centered,其余属性为默,其余属性为默认值时,就确定了图认值时,就确定了图12-212-2所示的外观。所示的外观。按照控件的特点可以将控件分为以下几类。按照控件的特点可以将控件分为以下几类。12.2.112.2.1可以定义动作行为的控件可以定义动作行为的控件 这类控件具有动作行为这类控件具有动作行为(action)(action)的属性,动作行为是用的属性,动作行为是用AutoLISPAutoLISP的函数或表达式表示定义的,用鼠标单击这

7、样的控件的函数或表达式表示定义的,用鼠标单击这样的控件时,就会执行相应的函数或表达式。时,就会执行相应的函数或表达式。1. 1. 按钮(按钮(ButtonButton) 按钮适用于立即产生可视的操作,如退出对话框、弹出子对话按钮适用于立即产生可视的操作,如退出对话框、弹出子对话框及其它特定操作。每个对话框至少包含一个框及其它特定操作。每个对话框至少包含一个OKOK按钮(或功能相按钮(或功能相当的控件)。当的控件)。 按钮的类型是按钮的类型是buttonbutton。有。有actionaction、alignmentalignment、fixed_heightfixed_height、fixed

8、_widthfixed_width、heightheight、is_cancelis_cancel、is_defaultis_default、is_enabledis_enabled、is_tab_stopis_tab_stop、keykey、labellabel、mnemonicmnemonic、widthwidth 共共1313个属性。它个属性。它的标签(的标签(labellabel)显示在按钮上。)显示在按钮上。 若要创建与若要创建与OKOK等价的控件,其关键字必须为等价的控件,其关键字必须为acceptaccept,并将其,并将其属性属性is_defaultis_default设定为设

9、定为truetrue(真)。参照例(真)。参照例12121 1中中 确认确认 按钮按钮的定义。的定义。2. 2. 编辑框(编辑框(Edit BoxEdit Box) 编辑框用于输入字符串。它的类型是编辑框用于输入字符串。它的类型是edit_boxedit_box。有。有actionaction、alignmentalignment、allow_acceptallow_accept、edit_limitedit_limit、edit_widthedit_width、fixed_heightfixed_height、fixed_widthfixed_width、heightheight、is_en

10、abledis_enabled、is_tab_stopis_tab_stop、keykey、labellabel、mnemonicmnemonic、valuevalue、widthwidth、password_char 16password_char 16个属性。其标签显示在该框的左边,它的默个属性。其标签显示在该框的左边,它的默认宽度为认宽度为1212个字符,当输入的字符多于个字符,当输入的字符多于1212时,文本自动向左滚时,文本自动向左滚动,框内的字符串即为编辑框的值(动,框内的字符串即为编辑框的值(valuevalue)。)。图图12-312-3所示的编辑框定义如下:所示的编辑框定义如

11、下:: :edit_boxedit_box key=test_text; key=test_text; label= label=长度长度: ;: ; value=100.0; value=100.0; width=12; width=12; 图图12-3 12-3 编辑框编辑框 3. 3. 图像按钮图像按钮(Image Button)(Image Button) 图像按钮将图像显示在按钮上。图像由图像按钮将图像显示在按钮上。图像由AutoLISPAutoLISP程序确定。它程序确定。它的类型是的类型是image_buttonimage_button。有。有actionaction、align

12、mentalignment、allow_acceptallow_accept、aspect_ratioaspect_ratio、colorcolor、fixed_heightfixed_height、fixed_widthfixed_width、heightheight、is_enabledis_enabled、is_tab_stopis_tab_stop、keykey、mnemonicmnemonic、width 13width 13个属性。个属性。 图像按钮很有用的一个特性是,通过图像按钮很有用的一个特性是,通过AutoLISPAutoLISP程序可以获取程序可以获取被单击时的位置,从而根

13、据不同的位置设计相应的动作。被单击时的位置,从而根据不同的位置设计相应的动作。 图图12-4 12-4 所示图像按钮定义的如下:所示图像按钮定义的如下:: :image_buttonimage_button key=test_image_button; key=test_image_button; width=10; width=10; aspect_ratio=1.5; aspect_ratio=1.5; 图图12-4 12-4 图像按钮图像按钮 4. 4. 列表列表框框(List BboxList Bbox) 列表框的类型是列表框的类型是list_boxlist_box。有。有action

14、action、alignmentalignment、allow_acceptallow_accept、fixed_heightfixed_height、fixed_widthfixed_width、heightheight、is_enabledis_enabled、is_tab_stopis_tab_stop、keykey、labellabel、listlist、mnemonicmnemonic、multiple_selectmultiple_select、tabstabs、valuevalue、width 16width 16个属性。列表内含个属性。列表内含有若干行可供选择的文本,当表的内容

15、超出表的范围时,将自有若干行可供选择的文本,当表的内容超出表的范围时,将自动在表的右侧出现一个滑动条。动在表的右侧出现一个滑动条。 列表的标签显示在列表框的上方列表的标签显示在列表框的上方作为文字说明。列表的值是被选中作为文字说明。列表的值是被选中的文本行的序号,序号从的文本行的序号,序号从0 0开始。属开始。属性性multiple_selectmultiple_select为为truetrue时,允许时,允许同时选取框内的多行文本。同时选取框内的多行文本。图图12-5 12-5 列表框列表框 图图12-5 12-5 所示对话框的列表定义如下:所示对话框的列表定义如下:: :list_boxl

16、ist_box label= label=齿轮种类齿轮种类; list= list= 圆柱直齿圆柱直齿nn圆柱斜齿圆柱斜齿nn圆锥直齿圆锥直齿nn螺旋伞齿螺旋伞齿nn蜗轮蜗轮nn蜗杆蜗杆n;n; value=2; value=2; key=gear_list; key=gear_list; height=6; height=6; 图图12-5 12-5 列表框列表框 5. 5. 下拉列表(下拉列表(Popup ListPopup List) 下拉列表的类型是下拉列表的类型是popup_listpopup_list。它具有。它具有actionaction、alignmentalignment、e

17、dit_widthedit_width、fixed_heightfixed_height、fixed_widthfixed_width、heightheight、is_enabledis_enabled、is_tab_stopis_tab_stop、keykey、labellabel、listlist、mnemonicmnemonic、tabstabs、valuevalue、width 15width 15个属性。个属性。 下拉列表具有编辑框和列表框的两个特点,初始状态象一个下拉列表具有编辑框和列表框的两个特点,初始状态象一个编辑框,标签显示在框的左边,框内只有一行字符和一个向下的编辑框,标签

18、显示在框的左边,框内只有一行字符和一个向下的箭头,见图箭头,见图12-612-6(a a)。单击框内箭头,将弹出一个列表,见图)。单击框内箭头,将弹出一个列表,见图12-612-6(b b),选取表内文本之后,列表自动关闭,在编辑框内显),选取表内文本之后,列表自动关闭,在编辑框内显示选中的内容。下拉列表的值是被选中的文本行的序号。示选中的内容。下拉列表的值是被选中的文本行的序号。 图图12-6 12-6 所示下拉列表的定义如下:所示下拉列表的定义如下:: :popup_listpopup_listlabel=label=齿轮种类:齿轮种类:;list=list=圆柱直齿圆柱直齿nn圆柱斜齿圆

19、柱斜齿nn圆锥直齿圆锥直齿nn螺旋伞齿螺旋伞齿nn蜗轮蜗轮nn蜗蜗杆杆n;n;key= gear_list;key= gear_list; (a a) (b b)图图12-6 12-6 下拉列表下拉列表 6. 6. 互锁按钮(互锁按钮(Radio ButtonRadio Button) 互锁按钮的类型是互锁按钮的类型是radio_buttonradio_button。有。有actionaction、alignmentalignment、fixed_heightfixed_height、fixed_widthfixed_width、heightheight、is_enabledis_enable

20、d、is_tab_stopis_tab_stop、keykey、labellabel、mnemonicmnemonic、valuevalue、width 12width 12个属个属性。性。 互锁按钮不宜能单独使用,必须由多个这样的按钮以行或列的互锁按钮不宜能单独使用,必须由多个这样的按钮以行或列的形式组成一组,同组的按钮之间是互锁的,只能从中选取一个。形式组成一组,同组的按钮之间是互锁的,只能从中选取一个。互锁按钮互锁按钮的标签显示在按钮的右边。图的标签显示在按钮的右边。图12-712-7所示互锁按钮的定所示互锁按钮的定义如下:义如下:: :radio_buttonradio_button

21、key= unit_mm; key= unit_mm; label= label= 毫米毫米; 图图12-7 12-7 互锁按钮互锁按钮7. 7. 滑动条(滑动条(SliderSlider) 滑动条是一种直观控制数值的控件。点取滑动条上的箭头或拖动滑滑动条是一种直观控制数值的控件。点取滑动条上的箭头或拖动滑块,可以得到字符串方式表示的整数。块,可以得到字符串方式表示的整数。 滑动条的类型是滑动条的类型是sliderslider。有。有actionaction、alignmentalignment、big_incrementbig_increment、fixed_heightfixed_heig

22、ht、fixed_widthfixed_width、heightheight、keykey、labellabel、layoutlayout、max_valuemax_value、min_valuemin_value、mnemonicmnemonic、small_incrementsmall_increment、valuevalue、width 15width 15个属性。个属性。 属 性属 性 m a x _ v a l u em a x _ v a l u e 、 m i n _ v a l u em i n _ v a l u e 确 定 数 值 的 最 大 和 最 小 值 ,确 定 数

23、值 的 最 大 和 最 小 值 ,small_incrementsmall_increment、big_incrementbig_increment确定点击滑动条箭头时的最小、最大增量。确定点击滑动条箭头时的最小、最大增量。 图图12-8 12-8 所示滑动条的定义如下:所示滑动条的定义如下:: :sliderslider key= test_slider; key= test_slider; min_value=0; min_value=0; max_value=100; max_value=100; 图图12-8 12-8 滑动条滑动条8. 8. 切换开关(切换开关(ToggleToggl

24、e) 切换开关又称作复选开关、乒乓开关,它的类型是切换开关又称作复选开关、乒乓开关,它的类型是toggletoggle。有有actionaction、alignmentalignment、fixed_heightfixed_height、fixed_widthfixed_width、heightheight、is_enabledis_enabled、is_tab_stopis_tab_stop、keykey、labellabel、valuevalue、width 11width 11个个属性。属性。 切换开关与互锁按钮不同的是它可以单独使用,同组的切切换开关与互锁按钮不同的是它可以单独使用,同

25、组的切换开关各自是独立的。换开关各自是独立的。 标签显示在开关的右边。图标签显示在开关的右边。图12-912-9所示切换开关的定义如下:所示切换开关的定义如下:: :toggletoggle label= label= 正交方式正交方式; key= ortho_mode; key= ortho_mode; value=1; value=1; 图图12-9 12-9 切换开关切换开关12.2.2 12.2.2 组合类控件组合类控件 组合类控件可以将相关的控件组合在一起,使得对话框的布组合类控件可以将相关的控件组合在一起,使得对话框的布局更加美观、合理,操作更加方便。局更加美观、合理,操作更加方便

26、。1. 1. 列(列(ColumnColumn) 列是将若干控件构成垂直分布的一个组件。列是将若干控件构成垂直分布的一个组件。 列的类型是列的类型是columncolumn。有。有alignmentalignment、children_alignmentchildren_alignment、children_fixed_heightchildren_fixed_height、children_fixed_widthchildren_fixed_width、fixed_heightfixed_height、fixed_widthfixed_width、heightheight、labellabe

27、l、width 9width 9个属性。个属性。 图图12-10 12-10 列列 图图12-11 12-11 加框列加框列 图图12-10 12-10 所示列的定义如下:所示列的定义如下:: :columncolumn : :buttonbuttonlabel= label= 光标拾取光标拾取 ; ; key= pick; key= pick; : :edit_boxedit_boxlabel= x=; label= x=; width=12; width=12; key= x; key= x; mnemonic= x; mnemonic= x; value=0.0; value=0.0;

28、: :edit_boxedit_boxlabel= y=; label= y=; width=12; width=12; key= y; key= y; mnemonic= y; mnemonic= y; value=0.0; value=0.0; 图图12-10 12-10 列列 2. 2. 加框列(加框列(Boxed ColumnBoxed Column) 顾名思义加框列就是加了一个矩形框的列。顾名思义加框列就是加了一个矩形框的列。 加框列的类型是加框列的类型是boxed_bolumnboxed_bolumn。有。有alignmentalignment、children_alignment

29、children_alignment、children_fixed_heightchildren_fixed_height、children_fixed_widthchildren_fixed_width、fixed_heightfixed_height、fixed_widthfixed_width、heightheight、labellabel、width 9width 9个属性。个属性。 如果将图如果将图12-10 12-10 所示列的定义的第一行所示列的定义的第一行 :column:column 改改为为:boxed_columnlabel= :boxed_columnlabel= 左下

30、角点左下角点 ; ,即可定义一个加框,即可定义一个加框列,见图列,见图12-1112-11。图图12-11 12-11 加框列加框列 3. 3. 互锁列(互锁列(Radio ColumnRadio Column) 若干个互锁按钮组成的列即为互锁列。若干个互锁按钮组成的列即为互锁列。 互锁列的类型是互锁列的类型是radio_columnradio_column。有。有alignmentalignment、children_alignmentchildren_alignment、children_fixed_heightchildren_fixed_height、children_fixed_wi

31、dthchildren_fixed_width、fixed_heightfixed_height、fixed_widthfixed_width、heightheight、labellabel、width 9width 9个属性。互锁列的特点是,它保证个属性。互锁列的特点是,它保证了其中只能有一个按钮的值为了其中只能有一个按钮的值为1 1,即处于打开状态。,即处于打开状态。图图12-12 12-12 互锁列互锁列 图图12-13 12-13 加框互锁列加框互锁列 图图12-12 12-12 所示互锁列的定义如下:所示互锁列的定义如下:: :radio_columnradio_column key

32、= size; key= size; : :radio_buttonradio_buttonlabel= A&0;label= A&0; key= a0; key= a0; : :radio_buttonradio_buttonlabel= A&1 ;label= A&1 ; key= a1; key= a1; : :radio_buttonradio_buttonlabel= A&2 ;label= A&2 ; key= a2; key= a2; : :radio_buttonradio_buttonlabel= A&3;label=

33、A&3; key= a3; key= a3; value=1; value=1;: :radio_buttonradio_buttonlabel= A&4;label= A&4; key= a4; key= a4;: :radio_buttonradio_buttonlabel= A&5;label= A&5; key= a5; key= a5; 图图12-12 12-12 互锁列互锁列图图12-13 12-13 加框互锁列加框互锁列 4. 4. 加框互锁列(加框互锁列(Boxed Radio ColumnBoxed Radio Column) 加框互锁

34、列就是加了一个矩形框的互锁列。加框互锁列就是加了一个矩形框的互锁列。 加框互锁列的类型是加框互锁列的类型是boxed_radio_columnboxed_radio_column。有。有alignmentalignment、children_alignmentchildren_alignment、children_fixed_heightchildren_fixed_height、children_fixed_widthchildren_fixed_width、fixed_heightfixed_height、fixed_widthfixed_width、heightheight、labell

35、abel、width 9width 9个属性。个属性。 如果将图如果将图12-12 12-12 所示互锁列的定义所示互锁列的定义的第一行的第一行 :radio_column:radio_column改为改为 :boxed_radio_columnlabel=:boxed_radio_columnlabel=幅面幅面规格规格 ; ,即可定义一个加框互锁列,即可定义一个加框互锁列,见图见图12-1312-13。5. 5. 行(行(RowRow) 行是将若干控件构成水平分布的一个组件。行是将若干控件构成水平分布的一个组件。行 的 类 型 是行 的 类 型 是 r o wr o w 。 有。 有 a

36、l i g n m e n ta l i g n m e n t 、 c h i l d r e n _ a l i g n m e n tc h i l d r e n _ a l i g n m e n t 、children_fixed_heightchildren_fixed_height、children_fixed_widthchildren_fixed_width、fixed_heightfixed_height、fixed_widthfixed_width、heightheight、labellabel、width 9width 9个属性。个属性。 图图12-14 12-14

37、行行图图12-14 12-14 所示行的定义如下:所示行的定义如下:: :rowrow : :toggletoggle label= label=纵向纵向; key=dir; key=dir; : :edit_boxedit_box label=W(mm)=; mnemonic=W; key=w; label=W(mm)=; mnemonic=W; key=w; value=420; value=420; : :edit_boxedit_box label=H(mm)=; mnemonic=H; key=h; label=H(mm)=; mnemonic=H; key=h; value=297

38、; value=297; 6. 6. 加框行(加框行(Boxed RowBoxed Row) 加框行就是加了一个矩形框的行。加框行就是加了一个矩形框的行。 加 框 行 的 类 型 是加 框 行 的 类 型 是 b o x e d _ r o wb o x e d _ r o w 。 有。 有 a l i g n m e n ta l i g n m e n t 、children_alignmentchildren_alignment、children_fixed_heightchildren_fixed_height、children_fixed_widthchildren_fixed_wi

39、dth、fixed_heightfixed_height、fixed_widthfixed_width、heightheight、labellabel、width 9width 9个属性。个属性。 如果将图如果将图12-14 12-14 所示行的定义的第一行所示行的定义的第一行 :row:row改为改为:boxed_rowlabel=:boxed_rowlabel=图纸幅面图纸幅面 ; ,即可定义一个加框行,见,即可定义一个加框行,见图图12-1512-15。图图12-15 12-15 加框行加框行7. 7. 互锁行(互锁行(Radio RowRadio Row) 若干个互锁按钮组成的行即为互

40、锁行。若干个互锁按钮组成的行即为互锁行。互锁行的类型是互锁行的类型是radio_rowradio_row。有。有alignmentalignment、children_alignmentchildren_alignment、children_fixed_heightchildren_fixed_height、children_fixed_widthchildren_fixed_width、fixed_heightfixed_height、fixed_widthfixed_width、heightheight、labellabel、width 9width 9个属性。互锁行中只能有一个选钮个属性

41、。互锁行中只能有一个选钮的值为的值为1 1。图图12-16 12-16 所示互锁行的定义如下:所示互锁行的定义如下:: :radio_rowradio_row key=size; key=size; : :radio_buttonradio_buttonlabel=A&0; key=a0;label=A&0; key=a0; : :radio_buttonradio_buttonlabel=A&1; key=a1;label=A&1; key=a1; : :radio_buttonradio_buttonlabel=A&2; key=a2;label=A

42、&2; key=a2; : :radio_buttonradio_buttonlabel=A&3; key=a3; value=1;label=A&3; key=a3; value=1; : :radio_buttonradio_buttonlabel=A&4; key=a4;label=A&4; key=a4; : :radio_buttonradio_buttonlabel=A&5; key=a5;label=A&5; key=a5; 图图12-16 12-16 互锁行互锁行8. 8. 加框互锁行(加框互锁行(Boxed Radio

43、RowBoxed Radio Row) 加框互锁行就是加了一个矩形框的互锁行。加框互锁行就是加了一个矩形框的互锁行。加框互锁行的类型是加框互锁行的类型是boxed_radio_rowboxed_radio_row。有。有alignmentalignment、children_alignmentchildren_alignment、children_fixed_heightchildren_fixed_height、children_fixed_widthchildren_fixed_width、fixed_heightfixed_height、fixed_widthfixed_width、he

44、ightheight、labellabel、width 9width 9个属性。个属性。 如果将图如果将图12-16 12-16 所示互锁行的定义的第一行所示互锁行的定义的第一行 :radio_row:radio_row 改改为为 :boxed_radio_rowlabel=:boxed_radio_rowlabel=幅面规格幅面规格 ; ,即可定义一个加,即可定义一个加框互锁行,见图框互锁行,见图12-1712-17。 图图12-17 12-17 加框互锁行加框互锁行9. 9. 对话框(对话框(dialogdialog) 对话框本身也可以看作是一种控件,它是对话框的主体,不能单独使对话框本身

45、也可以看作是一种控件,它是对话框的主体,不能单独使用,且至少要有一个确认(用,且至少要有一个确认(OKOK)或取消()或取消(CancelCancel)按钮。它的类型是)按钮。它的类型是dialogdialog,有,有initial_focusinitial_focus、labellabel、value 3value 3个属性。标签是对话框的标个属性。标签是对话框的标题。属性题。属性valuevalue也可以作为标题,这样的标题在程序运行时可以被改变。也可以作为标题,这样的标题在程序运行时可以被改变。initial_focusinitial_focus用于指定初始聚焦的控件。用于指定初始聚焦的

46、控件。见右图所示对话框及以下程序代码:见右图所示对话框及以下程序代码: sample:sample:dialogdialog label = label = 简单的对话框实例简单的对话框实例; : :texttext label = label = 祝您成功!祝您成功!; : :buttonbuttonkey = accept;key = accept; label = label = 确认确认; ; 简单的对话框实例简单的对话框实例 is_default = true;is_default = true; fixed_width = true; fixed_width = true; ali

47、gnment=centered; alignment=centered; 12.2.3 12.2.3 装饰性和信息类控件装饰性和信息类控件 装饰性和信息类控件无行为动作,也不能被选择,主要用于装饰性和信息类控件无行为动作,也不能被选择,主要用于显示信息、加强视觉效果或协助对话框布局。显示信息、加强视觉效果或协助对话框布局。1. 1. 图像(图像(ImageImage) 图像是在一个矩形区域内显示矢量图形、色彩填充块等的控图像是在一个矩形区域内显示矢量图形、色彩填充块等的控件。它的类型是件。它的类型是imageimage。有。有alignmentalignment、aspect_ratioasp

48、ect_ratio、colorcolor、fixed_heightfixed_height、fixed_widthfixed_width、heightheight、is_enabledis_enabled、is_tab_stopis_tab_stop、keykey、mnemonicmnemonic、width 11width 11个属性。图像的值是个属性。图像的值是点取图像时的位置,通过点取图像时的位置,通过AutoLISPAutoLISP程序可以获取该位置,从而程序可以获取该位置,从而根据这些位置设计相应的动作。根据这些位置设计相应的动作。 必须指定图像的必须指定图像的widthwidth、

49、heightheight或二者之一和或二者之一和aspect_ratioaspect_ratio属性。图像的内容由属性。图像的内容由AutoLISPAutoLISP程序确定。程序确定。图图12-1812-18所示图像的定义如下:所示图像的定义如下:: :imageimage width=30; width=30; aspect_ratio=0.6; aspect_ratio=0.6; key= rect; key= rect; color=graphics_background; color=graphics_background; 图图12-18 12-18 图像图像 注意:图像的内容由注意

50、:图像的内容由AutoLISPAutoLISP程序确定。程序确定。2. 2. 文本(文本(TextText) 文本控件通常用于显示提示或警告信息。文本控件通常用于显示提示或警告信息。 文本的类型是文本的类型是texttext。有。有alignmentalignment、fixed_heightfixed_height、fixed_widthfixed_width、heightheight、is_boldis_bold、keykey、labellabel、valuevalue、width 9width 9个属性。个属性。 属性属性labellabel和和valuevalue都可以存放用户要显示的

51、信息,且外观相同。但是,都可以存放用户要显示的信息,且外观相同。但是,labellabel存放的信息是不变的,存放的信息是不变的,valuevalue存放的信息可以由存放的信息可以由AutoLISPAutoLISP程序赋以新的程序赋以新的内容。若内容。若labellabel和和valuevalue同时存放了某些信息时,同时存放了某些信息时,labellabel的信息不予显示。例的信息不予显示。例12-2 12-2 定义了用属性定义了用属性labellabel存放显示信息的对话框,外观见图存放显示信息的对话框,外观见图12-1912-19。【例例12-212-2】 用属性用属性labellabe

52、l存放显示信息的对话框。存放显示信息的对话框。iwarn1:dialoglabel=iwarn1:dialoglabel=警告信息警告信息;: :texttextlabel=label=选取的对象不是直线,请重新选择!选取的对象不是直线,请重新选择!; ok_cancelok_cancel; ; 图图12-19 12-19 文本文本 3. 3. 部分文本(部分文本(text_parttext_part) 部分文本的类型是部分文本的类型是text_parttext_part,只有,只有labellabel一个属性。单独的部分文本与只一个属性。单独的部分文本与只含含labellabel属性的文本(

53、属性的文本(TextText)等效。多个部分文本可以组成单行的文本或段落,)等效。多个部分文本可以组成单行的文本或段落,弥补了文本(弥补了文本(TextText)只能单行的不足,例)只能单行的不足,例12-312-3定义了显示两行信息的对话框,定义了显示两行信息的对话框,外观见图外观见图12-2012-20。【例例12-312-3】定义多行文本的对话框。定义多行文本的对话框。warn2:warn2:dialogdialoglabel=label=警告信息警告信息; : :text_parttext_part label= label=选取的对象不是直线,选取的对象不是直线,; ; : :tex

54、t_parttext_part label= label=请重新选择!请重新选择!; ; ok_cancelok_cancel; ; 图图12-2012-20部分文本部分文本4. 4. 串联(串联(ConcatenationConcatenation) 串联的类型是串联的类型是ConcatenationConcatenation,没有属性,它的作用是把多个部分文,没有属性,它的作用是把多个部分文本组成单行的文本。本组成单行的文本。例例12-412-4是将两个部分文本组成单行的文本的实例,结果见图是将两个部分文本组成单行的文本的实例,结果见图12-2112-21。/例例12-4 12-4 将两个

55、部分文本组成单行的文本。将两个部分文本组成单行的文本。Warn3:Warn3:dialogdialoglabel=label=警告信息警告信息; : :concatenationconcatenation : :text_parttext_part label= label=选取的对象不是直线,选取的对象不是直线,; ; : :text_parttext_part label= label=请重新选择!请重新选择!; ; ok_cancel; ok_cancel; 图图12-21 12-21 串联后的部分文本串联后的部分文本5. 5. 段落(段落(ParagraphParagraph) 段落的

56、作用是把多个部分文本组成段落,它的类型是段落的作用是把多个部分文本组成段落,它的类型是paragraphparagraph,没有,没有属性。例属性。例12-512-5是将三个部分文本组成一个段落的实例,结果见图是将三个部分文本组成一个段落的实例,结果见图12-2212-22。warn:warn:dialogdialoglabel=label=警告信息警告信息; : :paragraphparagraph : :concatenationconcatenation : : text_parttext_part label= label=选取的对象不是直线,选取的对象不是直线,; ; : : te

57、xt_parttext_part label= label=请重新选择!请重新选择!; ; : :text_parttext_partlabel =label =用单点方式选择直线用单点方式选择直线 !; ; ok_cancel ok_cancel; ; 图图12-22 12-22 段落文本段落文本6. 6. 间隔(间隔(SpacerSpacer、Spacer_0Spacer_0、Spacer_1Spacer_1) 间隔(间隔(SpacerSpacer)也称空白衬垫,是一种特殊的控件,它具有不可见的大小)也称空白衬垫,是一种特殊的控件,它具有不可见的大小和对齐方式,用来调整其它一些控件之间的间

58、隔。如果不用间隔,系统将采和对齐方式,用来调整其它一些控件之间的间隔。如果不用间隔,系统将采用均匀的布局,因此,间隔只用在需要局部调整控件间隙的地方。用均匀的布局,因此,间隔只用在需要局部调整控件间隙的地方。 间隔控件的类型是间隔控件的类型是spacerspacer,有,有alignmentalignment、fixed_heightfixed_height、fixed_widthfixed_width、heightheight、width 5width 5个属性。个属性。 Spacer_0Spacer_0和和Spacer_1Spacer_1是是AutoCADAutoCAD定义的具体控件。定义

59、的具体控件。Spacer_0Spacer_0是是SpacerSpacer的的widthwidth、heightheight为为0 0的特例,的特例,Spacer_1Spacer_1是是SpacerSpacer的的widthwidth、heightheight为为1 1的特例。的特例。Spacer_0Spacer_0、Spacer_1Spacer_1可直接引用。可直接引用。 以图以图12-2312-23为例,前为例,前4 4行每行是具有固定宽的行每行是具有固定宽的3 3个按钮。底行最宽个按钮。底行最宽, ,它确定了它确定了所有的行宽。第一行没有插入间隔,这所有的行宽。第一行没有插入间隔,这3 3

60、个按钮的两端与底行对齐,且均匀分个按钮的两端与底行对齐,且均匀分布。第二行插入间隔布。第二行插入间隔Spacer_0Spacer_0,Spacer_0Spacer_0虽然没有宽度,但它参与等分底行虽然没有宽度,但它参与等分底行大于该行的间隔,或者认为该行增加了一个宽度为大于该行的间隔,或者认为该行增加了一个宽度为0 0的按钮。第三行插入间隔的按钮。第三行插入间隔Spacer_1Spacer_1,相当于增加了一个宽度为,相当于增加了一个宽度为1 1的按钮,再均匀分布。第四行插入宽度的按钮,再均匀分布。第四行插入宽度为为4 4的间隔的间隔SpacerSpacer,相当于增加了一个宽度为,相当于增加了一个宽度为4 4的按钮,再均匀分布。该对话的按钮,再均匀分布。该对话框的定义见例框的定义见例12-612-6。图图12-23 12-23 用用spacerspacer、sp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论