




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第 12 章 对话框设计 1凌云书屋12.1概述1. 对话框的特点 对话框形象、直观,可以随意输入、随时修改,鼠标、键盘并用,是一种深受用户欢迎的界面。 对话框用DCL语言(Dialog Control Language)定义,得到DCL类型的文件,用AutoLISP或C程序驱动。 AutoCAD提供了两个重要的DCL文件: ACAD.DCL存放AutoCAD系统定义的对话框, BASE.DCL为用户提供了一些常用的对话框标准控件。2. 对话框的组成 对话框由若干控件组成,见图12-1。控件可以是按钮、切换开关、编辑框、列表或图像等。 2凌云书屋图12-1对话框的组成 图像按钮弹出列表滑动条编
2、辑框按钮图像互锁按钮切换开关文本3凌云书屋3. 实例【例12-1】用DCL定义一个简单的对话框。 进入VLISP环境,将下列源代码输入到文本编辑窗口,选取下拉菜单ToolsInterface ToolPreview DCL in Editor,即可看到图12-2所示该对话框的外观。sample:dialog label = 简单的对话框实例;:text label = 祝您成功!;:button key = accept; label = 确认; is_default = true; fixed_width = true; alignment=centered; 图12-2 简单的对话框实例4
3、凌云书屋12.2 对话框控件 控件是构造对话框的元件。AutoCAD为用户预定义了23种控件和8个常用的固定控件。每一种控件属于一种类型。每一个控件有多个属性。每个属性都有一个名字和值。多数的属性都有它的默认值。一个控件具有哪些属性是由它的类型所决定的。控件的这些属性确定了它的外观形式和动作行为。 例如上例中的确认按钮,它的类型是button。当它的属性label = 确认、key = accept、is_default = true、fixed_width = true、alignment = centered,其余属性为默认值时,就确定了图12-2所示的外观。按照控件的特点可以将控件分为以
4、下几类。5凌云书屋12.2.1可以定义动作行为的控件 这类控件具有动作行为(action)的属性,动作行为是用AutoLISP的函数或表达式表示定义的,用鼠标单击这样的控件时,就会执行相应的函数或表达式。1. 按钮(Button) 按钮适用于立即产生可视的操作,如退出对话框、弹出子对话框及其它特定操作。每个对话框至少包含一个OK按钮(或功能相当的控件)。 按钮的类型是button。有action、alignment、fixed_height、fixed_width、height、is_cancel、is_default、is_enabled、is_tab_stop、key、label、mnem
5、onic、width 共13个属性。它的标签(label)显示在按钮上。 若要创建与OK等价的控件,其关键字必须为accept,并将其属性is_default设定为true(真)。参照例121中确认按钮的定义。6凌云书屋2. 编辑框(Edit Box) 编辑框用于输入字符串。它的类型是edit_box。有action、alignment、allow_accept、edit_limit、edit_width、fixed_height、fixed_width、height、is_enabled、is_tab_stop、key、label、mnemonic、value、width、password_
6、char 16个属性。其标签显示在该框的左边,它的默认宽度为12个字符,当输入的字符多于12时,文本自动向左滚动,框内的字符串即为编辑框的值(value)。图12-3所示的编辑框定义如下::edit_box key=test_text; label=长度: ; value=100.0; width=12; 图12-3 编辑框 7凌云书屋3. 图像按钮(Image Button) 图像按钮将图像显示在按钮上。图像由AutoLISP程序确定。它的类型是image_button。有action、alignment、allow_accept、aspect_ratio、color、fixed_heigh
7、t、fixed_width、height、is_enabled、is_tab_stop、key、mnemonic、width 13个属性。 图像按钮很有用的一个特性是,通过AutoLISP程序可以获取被单击时的位置,从而根据不同的位置设计相应的动作。 图12-4 所示图像按钮定义的如下::image_button key=test_image_button; width=10; aspect_ratio=1.5; 图12-4 图像按钮8凌云书屋4. 列表框(List Bbox) 列表框的类型是list_box。有action、alignment、allow_accept、fixed_heigh
8、t、fixed_width、height、is_enabled、is_tab_stop、key、label、list、mnemonic、multiple_select、tabs、value、width 16个属性。列表内含有若干行可供选择的文本,当表的内容超出表的范围时,将自动在表的右侧出现一个滑动条。 列表的标签显示在列表框的上方作为文字说明。列表的值是被选中的文本行的序号,序号从0开始。属性multiple_select为true时,允许同时选取框内的多行文本。图12-5 列表框 9凌云书屋图12-5 所示对话框的列表定义如下::list_box label=齿轮种类; list= 圆柱直
9、齿n圆柱斜齿n圆锥直齿n螺旋伞齿n蜗轮n蜗杆n; value=2; key=gear_list; height=6; 图12-5 列表框 10凌云书屋5. 下拉列表(Popup List) 下拉列表的类型是popup_list。它具有action、alignment、edit_width、fixed_height、fixed_width、height、is_enabled、is_tab_stop、key、label、list、mnemonic、tabs、value、width 15个属性。 下拉列表具有编辑框和列表框的两个特点,初始状态象一个编辑框,标签显示在框的左边,框内只有一行字符和一个向
10、下的箭头,见图12-6(a)。单击框内箭头,将弹出一个列表,见图12-6(b),选取表内文本之后,列表自动关闭,在编辑框内显示选中的内容。下拉列表的值是被选中的文本行的序号。 11凌云书屋图12-6 所示下拉列表的定义如下::popup_listlabel=齿轮种类:;list=圆柱直齿n圆柱斜齿n圆锥直齿n螺旋伞齿n蜗轮n蜗杆n;key= gear_list;(a) (b)图12-6 下拉列表 12凌云书屋6. 互锁按钮(Radio Button) 互锁按钮的类型是radio_button。有action、alignment、fixed_height、fixed_width、height、i
11、s_enabled、is_tab_stop、key、label、mnemonic、value、width 12个属性。 互锁按钮不宜能单独使用,必须由多个这样的按钮以行或列的形式组成一组,同组的按钮之间是互锁的,只能从中选取一个。互锁按钮的标签显示在按钮的右边。图12-7所示互锁按钮的定义如下::radio_button key= unit_mm; label= 毫米;图12-7 互锁按钮13凌云书屋7. 滑动条(Slider) 滑动条是一种直观控制数值的控件。点取滑动条上的箭头或拖动滑块,可以得到字符串方式表示的整数。 滑动条的类型是slider。有action、alignment、big_
12、increment、fixed_height、fixed_width、height、key、label、layout、max_value、min_value、mnemonic、small_increment、value、width 15个属性。 属性max_value、min_value确定数值的最大和最小值,small_increment、big_increment确定点击滑动条箭头时的最小、最大增量。 图12-8 所示滑动条的定义如下::slider key= test_slider; min_value=0; max_value=100; 图12-8 滑动条14凌云书屋8. 切换开关(T
13、oggle) 切换开关又称作复选开关、乒乓开关,它的类型是toggle。有action、alignment、fixed_height、fixed_width、height、is_enabled、is_tab_stop、key、label、value、width 11个属性。 切换开关与互锁按钮不同的是它可以单独使用,同组的切换开关各自是独立的。 标签显示在开关的右边。图12-9所示切换开关的定义如下::toggle label= 正交方式; key= ortho_mode; value=1;图12-9 切换开关15凌云书屋12.2.2 组合类控件 组合类控件可以将相关的控件组合在一起,使得对话
14、框的布局更加美观、合理,操作更加方便。1. 列(Column) 列是将若干控件构成垂直分布的一个组件。 列的类型是column。有alignment、children_alignment、children_fixed_height、children_fixed_width、fixed_height、fixed_width、height、label、width 9个属性。 图12-10 列 图12-11 加框列 16凌云书屋图12-10 所示列的定义如下::column :buttonlabel= 光标拾取 ; key= pick; :edit_boxlabel= x=; width=12; k
15、ey= x; mnemonic= x; value=0.0; :edit_boxlabel= y=; width=12; key= y; mnemonic= y; value=0.0; 图12-10 列 17凌云书屋2. 加框列(Boxed Column) 顾名思义加框列就是加了一个矩形框的列。 加框列的类型是boxed_bolumn。有alignment、children_alignment、children_fixed_height、children_fixed_width、fixed_height、fixed_width、height、label、width 9个属性。 如果将图12-1
16、0 所示列的定义的第一行:column改为:boxed_columnlabel= 左下角点;,即可定义一个加框列,见图12-11。图12-11 加框列 18凌云书屋3. 互锁列(Radio Column) 若干个互锁按钮组成的列即为互锁列。 互锁列的类型是radio_column。有alignment、children_alignment、children_fixed_height、children_fixed_width、fixed_height、fixed_width、height、label、width 9个属性。互锁列的特点是,它保证了其中只能有一个按钮的值为1,即处于打开状态。图12
17、-12 互锁列 图12-13 加框互锁列 19凌云书屋图12-12 所示互锁列的定义如下::radio_column key= size; :radio_buttonlabel= A&0; key= a0; :radio_buttonlabel= A&1 ; key= a1; :radio_buttonlabel= A&2 ; key= a2; :radio_buttonlabel= A&3; key= a3; value=1;:radio_buttonlabel= A&4; key= a4;:radio_buttonlabel= A&5; key= a5;图12-12 互锁列20凌云书屋图1
18、2-13 加框互锁列 4. 加框互锁列(Boxed Radio Column) 加框互锁列就是加了一个矩形框的互锁列。 加框互锁列的类型是boxed_radio_column。有alignment、children_alignment、children_fixed_height、children_fixed_width、fixed_height、fixed_width、height、label、width 9个属性。 如果将图12-12 所示互锁列的定义的第一行:radio_column改为:boxed_radio_columnlabel=幅面规格;,即可定义一个加框互锁列,见图12-13。2
19、1凌云书屋5. 行(Row) 行是将若干控件构成水平分布的一个组件。行的类型是row。有alignment、children_alignment、children_fixed_height、children_fixed_width、fixed_height、fixed_width、height、label、width 9个属性。 图12-14 行图12-14 所示行的定义如下::row :toggle label=纵向; key=dir; :edit_box label=W(mm)=; mnemonic=W; key=w; value=420; :edit_box label=H(mm)=;
20、mnemonic=H; key=h; value=297; 22凌云书屋6. 加框行(Boxed Row) 加框行就是加了一个矩形框的行。 加框行的类型是boxed_row。有alignment、children_alignment、children_fixed_height、children_fixed_width、fixed_height、fixed_width、height、label、width 9个属性。 如果将图12-14 所示行的定义的第一行:row改为:boxed_rowlabel=图纸幅面;,即可定义一个加框行,见图12-15。图12-15 加框行23凌云书屋7. 互锁行(R
21、adio Row) 若干个互锁按钮组成的行即为互锁行。互锁行的类型是radio_row。有alignment、children_alignment、children_fixed_height、children_fixed_width、fixed_height、fixed_width、height、label、width 9个属性。互锁行中只能有一个选钮的值为1。图12-16 所示互锁行的定义如下::radio_row key=size; :radio_buttonlabel=A&0; key=a0; :radio_buttonlabel=A&1; key=a1; :radio_buttonla
22、bel=A&2; key=a2; :radio_buttonlabel=A&3; key=a3; value=1; :radio_buttonlabel=A&4; key=a4; :radio_buttonlabel=A&5; key=a5; 图12-16 互锁行24凌云书屋8. 加框互锁行(Boxed Radio Row) 加框互锁行就是加了一个矩形框的互锁行。加框互锁行的类型是boxed_radio_row。有alignment、children_alignment、children_fixed_height、children_fixed_width、fixed_height、fixed_
23、width、height、label、width 9个属性。 如果将图12-16 所示互锁行的定义的第一行:radio_row改为:boxed_radio_rowlabel=幅面规格;,即可定义一个加框互锁行,见图12-17。 图12-17 加框互锁行25凌云书屋9. 对话框(dialog) 对话框本身也可以看作是一种控件,它是对话框的主体,不能单独使用,且至少要有一个确认(OK)或取消(Cancel)按钮。它的类型是dialog,有initial_focus、label、value 3个属性。标签是对话框的标题。属性value也可以作为标题,这样的标题在程序运行时可以被改变。initial_
24、focus用于指定初始聚焦的控件。见右图所示对话框及以下程序代码: sample:dialog label = 简单的对话框实例; :text label = 祝您成功!; :buttonkey = accept; label = 确认; 简单的对话框实例 is_default = true; fixed_width = true; alignment=centered; 26凌云书屋12.2.3 装饰性和信息类控件 装饰性和信息类控件无行为动作,也不能被选择,主要用于显示信息、加强视觉效果或协助对话框布局。1. 图像(Image) 图像是在一个矩形区域内显示矢量图形、色彩填充块等的控件。它的
25、类型是image。有alignment、aspect_ratio、color、fixed_height、fixed_width、height、is_enabled、is_tab_stop、key、mnemonic、width 11个属性。图像的值是点取图像时的位置,通过AutoLISP程序可以获取该位置,从而根据这些位置设计相应的动作。 必须指定图像的width、height或二者之一和aspect_ratio属性。图像的内容由AutoLISP程序确定。27凌云书屋图12-18所示图像的定义如下::image width=30; aspect_ratio=0.6; key= rect; col
26、or=graphics_background; 图12-18 图像 注意:图像的内容由AutoLISP程序确定。28凌云书屋2. 文本(Text) 文本控件通常用于显示提示或警告信息。 文本的类型是text。有alignment、fixed_height、fixed_width、height、is_bold、key、label、value、width 9个属性。 属性label和value都可以存放用户要显示的信息,且外观相同。但是,label存放的信息是不变的,value存放的信息可以由AutoLISP程序赋以新的内容。若label和value同时存放了某些信息时,label的信息不予显示。
27、例12-2 定义了用属性label存放显示信息的对话框,外观见图12-19。【例12-2】 用属性label存放显示信息的对话框。iwarn1:dialoglabel=警告信息;:textlabel=选取的对象不是直线,请重新选择!; ok_cancel; 图12-19 文本29凌云书屋 3. 部分文本(text_part) 部分文本的类型是text_part,只有label一个属性。单独的部分文本与只含label属性的文本(Text)等效。多个部分文本可以组成单行的文本或段落,弥补了文本(Text)只能单行的不足,例12-3定义了显示两行信息的对话框,外观见图12-20。【例12-3】定义多
28、行文本的对话框。warn2:dialoglabel=警告信息; :text_part label=选取的对象不是直线,; :text_part label=请重新选择!; ok_cancel; 图12-20部分文本30凌云书屋4. 串联(Concatenation) 串联的类型是Concatenation,没有属性,它的作用是把多个部分文本组成单行的文本。例12-4是将两个部分文本组成单行的文本的实例,结果见图12-21。/例12-4 将两个部分文本组成单行的文本。Warn3:dialoglabel=警告信息; :concatenation :text_part label=选取的对象不是直线
29、,; :text_part label=请重新选择!; ok_cancel; 图12-21 串联后的部分文本31凌云书屋5. 段落(Paragraph) 段落的作用是把多个部分文本组成段落,它的类型是paragraph,没有属性。例12-5是将三个部分文本组成一个段落的实例,结果见图12-22。warn:dialoglabel=警告信息; :paragraph :concatenation : text_part label=选取的对象不是直线,; : text_part label=请重新选择!; :text_partlabel =用单点方式选择直线 !; ok_cancel;图12-22
30、段落文本32凌云书屋6. 间隔(Spacer、Spacer_0、Spacer_1) 间隔(Spacer)也称空白衬垫,是一种特殊的控件,它具有不可见的大小和对齐方式,用来调整其它一些控件之间的间隔。如果不用间隔,系统将采用均匀的布局,因此,间隔只用在需要局部调整控件间隙的地方。 间隔控件的类型是spacer,有alignment、fixed_height、fixed_width、height、width 5个属性。 Spacer_0和Spacer_1是AutoCAD定义的具体控件。Spacer_0是Spacer的width、height为0的特例,Spacer_1是Spacer的width、h
31、eight为1的特例。Spacer_0、Spacer_1可直接引用。 以图12-23为例,前4行每行是具有固定宽的3个按钮。底行最宽,它确定了所有的行宽。第一行没有插入间隔,这3个按钮的两端与底行对齐,且均匀分布。第二行插入间隔Spacer_0,Spacer_0虽然没有宽度,但它参与等分底行大于该行的间隔,或者认为该行增加了一个宽度为0的按钮。第三行插入间隔Spacer_1,相当于增加了一个宽度为1的按钮,再均匀分布。第四行插入宽度为4的间隔Spacer,相当于增加了一个宽度为4的按钮,再均匀分布。该对话框的定义见例12-6。33凌云书屋图12-23 用spacer、spacer_0、spac
32、er_1调整控件间的间隙 Spacer_0Spacer_1Spacer宽度=4 【例12-6】用spacer、spacer_0、spacer_1调整控件间的间隙spcr:dialoglabel= “调整间隔实验”;:row/没有插入间隔 :buttonlabel=A0;key=a0;fixed_width=true; :buttonlabel=A1;key=a1;fixed_width=true; :buttonlabel=A2;key=a2;fixed_width=true; 34凌云书屋:rowspacer_0;/插入间隔Spacer_0 :buttonlabel=B0;key=b0;fi
33、xed_width=true; :buttonlabel=B1;key=b1;fixed_width=true; :buttonlabel=B2;key=b2;fixed_width=true; :rowspacer_1;/插入间隔Spacer_1 :buttonlabel=C0;key=c0;fixed_width=true; :buttonlabel=C1;key=c1;fixed_width=true; :buttonlabel=C2;key=c2;fixed_width=true; 35凌云书屋 :row:spacer/插入宽度为4的间隔Spacer width=4; fixed_wi
34、dth=true; :buttonlabel=D0;key=d0;fixed_width=true; :buttonlabel=D1;key=d1;fixed_width=true; :buttonlabel=D2;key=d2;fixed_width=true; ok_cancel_help_info;36凌云书屋12.2.4 AutoCAD 预定义的控件 AutoCAD不仅预定义了25种控件的类型,还定义了以下8个最常用的控件。定义对话框时,可直接使用这些控件,但是在编写AutoLISP驱动程序时,必须要准确地使用其关键字(大小写字母不等价)。1. ok_only(确认)按钮 单个的OK按
35、钮,关键字为accept。用于确认施加在对话框上的操作。2. ok_cancel(确认和取消)按钮 OK和Cancel两个按钮组成的行,OK按钮的关键字同前,Cancel按钮的关键字为cancel。Cancel按钮用于放弃施加在对话框上的操作。3. errtile(出错信息)控件 Errtile属于Text类型的控件,其标签为空,关键字为error。显示该控件属性value的内容。属性value的值由AutoLISP程序确定。37凌云书屋【例12-7】定义图12-24所示出错信息的对话框的源代码和AutoLISP驱动程序。/ 用DCL定义对话框,文件名为12-7.dcl,存放在d盘的examp
36、ledcl目录下。error:dialoglabel=出错信息; errtile; ok_only; 图12-24 出错信息对话框; 用AutoLISP驱动对话框的程序,文件名为12-7.lsp。(defun c:erdlg() (if ( (setq id(load_dialog d:exampledcl12-7) 0) (exit) (if (not (new_dialog error id)(exit) (set_tile error 长度必须大于 0 !) (action_tile accept (done_dialog) (start_dialog) (unload_dialog i
37、d) (princ)38凌云书屋4. ok_cancel_help(确认、取消和帮助)控件 OK、Cancel和Help三个按钮组成的行,OK、Cancel按钮的关键字同前,Help按钮的关键字为help。【例12-8】定义图12-25所示含有OK、Cancel和Help三个按钮的对话框的源代码和AutoLISP驱动程序。/用DCL定义对话框,文件名为12-8.dcl,存放在d盘的exampledcl目录下。hlp:dialog label = 了解直线命令的用法; ok_cancel_help;图12-25 含有ok_cancel_help控件的对话框 39凌云书屋;用AutoLISP驱动对
38、话框的程序,文件名为12-8.lsp。 (defun c:hlpdlg() (setq id(load_dialog d:example12-8.dcl) (if ( id 0)(exit) (if (not (new_dialog hlp id)(exit) (action_tile help (help line);定义help按钮的活动是调用AutoLISP的help函数,了解直线命令的用法。 (action_tile accept (done_dialog) (action_tile cancel (done_dialog) (start_dialog) (unload_dialog
39、id) (princ)40凌云书屋5. ok_cancel_help_errtile(确认、取消、帮助和出错)控件 该控件为OK、Cancel和Help共3个按钮组成的行,出错信息写在该行的下面。这4个控件的关键字同前。控件errtile需要在AutoLISP驱动对话框程序中用set_tile函数为其属性value赋值,例如: (set_tile error 无效的输入)41凌云书屋/定义ok_cancel_help_errtile对话框,文件名为error.dclerror:dialoglabel=出错信息; ok_cancel_help_errtile; (defun c:erdlg()
40、;AutoLISP驱动程序 (if ( (setq id(load_dialog d:exampledclerror) 0) (exit) (if (not (new_dialog error id)(exit) (set_tile error 无效的输入) (action_tile accept (done_dialog) (start_dialog) (unload_dialog id) (princ)42凌云书屋6. ok_cancel_help_info(确认、取消、帮助和信息)控件 该控件为OK、Cancel、Help和info四个按钮组成的行,OK、Cancel和Help的关键字同
41、前。info按钮的关键字为info,需要在AutoLISP驱动程序定义info按钮的活动,比如,弹出一个用text控件为主的显示一些信息的对话框。 43凌云书屋12.3 控件的属性 控件的外观和功能是由该控件的属性确定的。属性如同程序中的变量,具有名字和值。属性的值有整型、实型和字符串类型,有的属性值只能是预定义的保留字。实数的小数点前必须有数字,例如.1是错的,应为0.1。字符串是由双引号括起的文本,与AutoLISP一样,用做转义符。预定义的保留字有true、false、left、centered、right、top和bottom,它们必须小写。AutoLISP程序在运行中可以改变控件的一
42、些属性。 控件的类型不同,其属性的数量也不同。有些属性在所有的控件中的含义是相同的,有些属性在不同的控件中含义也不同。AutoCAD为用户预定义了35个属性。44凌云书屋按字母顺序依次是:1. action 确定控件的活动,活动是是用双引号括起的AutoLISP表达式或函数。表达式中不能含有AutoCAD的命令。当选中该控件时,执行相应的AutoLISP表达式或函数。AutoLISP驱动程序可以设置控件的一些属性,且覆盖DCL定义时的该属性。 相关的控件有:button、edit_box、image、image_button、list_box、popup_list、radio_button、s
43、lider、toggle。 默认值:无2. alignment 确定控件自身的定位方式。列类型的控件可选left(左对齐)、centered(中间对齐)和right(右对齐);行类型的控件可选top(顶对齐)、centered(中间对齐)和bottom(底对齐)。相关的控件有:全部控件。 默认值:列类型控件为left,行类型控件为centered45凌云书屋3. allow_accept 若该属性的值为true,按下接受键(如Enter键),就如同单击了默认按钮(is_default 为 true的按钮)。 相关的控件有:edit_box、image_button、list_box 默认值:f
44、alse4. aspect_ratio 图像控件的宽与高之比,与宽、高之一确定图像控件的大小。若该属性的值为零,则默认为将图像控件调整为最合适的宽与高之比。 相关的控件有:image、image_button 默认值:无5. big_increment 确定滑动条最大增量的整数值,取值范围在属性min_value和属性max_value之间。 相关的控件有:slider 默认值:整个范围的1/10。46凌云书屋6. children_alignment 与属性alignment的功能基本相同,区别在于它只针对子控件组群而言,确定组群内部控件的定位方式,控件自身的alignment属性优先于该属
45、性。 相关的控件有:boxed_column、boxed_radio_column、boxed_radio_row、boxed_row、column、radio_column、radio_row、row 默认值:列类型控件为left,行类型控件为centered7. children_fixed_height 功能与fixed_height相同,不过它是控件组群的属性,仅作用于组群内所有的控件并作为它们的默认值,低于属性fixed_height的优先级。 相关的控件有:boxed_column、boxed_radio_column、boxed_radio_row、boxed_row、colum
46、n、radio_column、radio_row、row 默认值:false47凌云书屋8. children_fixed_width 功能与fixed_ width相同,不过它是控件组群的属性,仅作用于组群内所有的控件并作为它们的默认值,默认值为flase,低于属性fixed_ width的优先级。 相关的控件有:boxed_column、boxed_radio_column、boxed_radio_row、boxed_row、column、radio_column、radio_row、row 默认值:false9. color 确定图像背景、矢量或填充块的颜色。普通颜色与AutoCAD的标
47、准颜色名(red、yellow等)和颜色号所定义的颜色含义相同,此外还有表12-1所示的特殊颜色。 相关的控件有:image、image_button。 默认值:7(白色)48凌云书屋表12-1 特殊的颜色 颜色值 预定义 含 义 -2 Graphics_background 当前图形屏幕的背景色 -15 Dialog_background 当前对话框背景色 -16 Dialog_foreground 当前对话框前景色 -18 Dialog_line Current 当前对话框线条颜色10. edit_limit 确定编辑框可容纳的最多字符数,最大值为256。 相关的控件有:edit_box。
48、 默认值:13249凌云书屋11. edit_width 确定编辑框的宽度,以字符为单位。若该属性的值默认为0,编辑框的宽度将是不固定的,布局时可自动扩充到整个可用空间。 相关的控件有:edit_box、popup_list 默认值:扩充到整个可用空间。12. fixed_height 当该属性的值为true时,属性height有效,否则做相关调整。 相关的控件有:全部控件。 默认值:flase13. fixed_width 当该属性的值为true时,属性width有效,否则做相关调整。 相关的控件有:全部控件。 默认值:flasefixed_width = true;width = 10;f
49、ixed_width = false;width = 10;50凌云书屋12. fixed_width_font 当该属性的值为true时,对于列表框或下拉列表框内的字符,在行距、列距不变的情况下减小字符之间的间隔(字符尽可能地大)。 相关的控件有:list_box、popup_list。 默认值:flase15. height 确定控件的最小高度,数值类型是整数或实数型。单位为屏幕字符的最大高度。如果属性fixed_height的值为ture,height是控件的实际高度,否则,在自动布局时,控件的实际高度会超出该值。通常,不需指定该值,系统能自动采用合适的数值(图像及图像按钮除外)。 相关
50、的控件有:全部控件。 默认值:无16. initial_focus 确定对话框内初始被聚焦的控件。 相关的控件有:dialog。 默认值:无Flase ture51凌云书屋17. is_bold 若该属性为true,该控件的字符用黑体显示。 相关的控件有:text。 默认值:false18. is_cancel 若该属性为true,所选中的按钮与按取消键(如Esc)的作用相同。对话框中只能有一个按钮的is_cancel为true,且点取该按钮后,取消施加在对话框上的操作并终止对话框。 相关的控件有:button。 默认值:false19. is_default 若该属性为true,单击该按钮与
51、按接收受键(如Enter)的作用相同。对话框中只能有一个按钮将该属性设置为true。 相关的控件有:button。 默认值:false52凌云书屋20. is_enabled 若该属性为true,控件有效,否则,控件失效(变灰)。 相关的控件有:button、edit_box、image、image_button、list_box、popup_list、radio_button、toggle。 默认值:true21. is_tab_stop 确定控件是否可以用Tab选择聚焦,若该属性为false时,按Tab键时,将跳过该控件到下一个控件。 相关的控件有:button、edit_box、imag
52、e、image_button、list_box、popup_list、radio_button、toggle。 默认值:trueflase ture53凌云书屋22. key 确定控件的关键字,关键字是控件的标识,在一个对话框中的关键字必须是唯一的。关键字的值为字符串,且大小写不等价。AutoLISP程序根据控件的关键字施加相应控件的操作。 相关的控件有:Button、edit_box、image、image_button、list_box、popup_list、radio_button、slider、text、toggle。默认值:无23. Label 确定控件的标签,label的值是一个由
53、双引号括起来的字符串。它的显示位置取决于控件的类型。例如,对话框的标签是显示在顶部的标题,按钮的标签显示在按钮上,编辑框的标签显示在编辑框的左边,切换开关、互锁按钮的标签在显示开关按钮的右边,行、列的标签显示在行、列的左上方。 相关的控件有:boxed_column、boxed_radio_column、boxed_radio_row、boxed_row、button、dialog、edit_box、list_box、popup_list、radio_button、slider、text、text_part、toggle。 默认值:无54凌云书屋24. layout 确定slider(滑动条)
54、的方位是horizontal(水平)还是vertical(垂直),默认值为horizontal。 相关的控件有:slider。 默认值:horizontal25. list 确定列表框或下拉列表框内的初始内容(字符串),行之间用n分隔,行内用制表符t分隔。 相关的控件有:list_box、popup_list。 默认值:无26. max_value 确定滑动条返回的最大值,是-3276832767之间的整数。 相关的控件有:slider。 默认值:1000055凌云书屋27. min_value 确定滑动条返回的最小值,是-3276832767之间的整数。 相关的控件有:slider。 默认值
55、:028. mnemonic 定义控件的热键,即助记符。助记符是控件标签中带下划线的字符。也可以在属性label中用&定义助记符。 若助记符是为控件组群设置的,则焦点自动落在第一个is_tab_stop属性为true的控件上。 相关的控件有:button、edit_box、image、list_box、popup_list、radio_button、slider、toggle。 默认值:无29. multiple_select 若该属性的值为true,允许在列表中选择多个选项。 相关的控件有:list_box。 默认值:false56凌云书屋30. password_char 确定用于屏蔽用户
56、输入的字符,即用该字符代替实际输入的字符显示在编辑框内,达到为输入内容保密的目的。 相关的控件有:edit_box 默认值:无31. small_increment 确定滑动条最小增量的整数值,取值范围在min_value和max_value之间。 相关的控件有:slider 默认值:整个范围的1/100。32. tabs 确定列表框或下拉列表框内的制表符t停止的位置(字符个数)。 相关的控件有:list_box、popup_list 默认值:无57凌云书屋33. tab_truncate 若该属性的值为true,超出tabs属性指定的字符被截掉(从第tabs个字符起被截掉)。 相关的控件有:
57、list_box、popup_list 默认值:false34. value 控件初始状态时的值。值的含义由控件类型所决定。例如,对话框的value可以作为标题,编辑框的value作为它的初始值,互锁按钮或切换开关的value为1则表示处于打开的状态,列表或下拉列表的value确定了初始被选中的状态。该属性的值可通过AutoLISP程序被访问、设置或修改。 相关的控件有:dialog、edit_box、image、list_box、popup_list、radio_button、slider、text、toggle。 默认值:无58凌云书屋35. width 确定控件的最小宽度,数值类型是整数
58、或实数型。宽度单位为大小写字符的平均宽度。如果属性fixed_width的值为ture,width是控件的实际宽度,否则,在自动布局时,控件的实际宽度会超出该值。通常,不需特别指定该值,系统能自动采用合适的数值(图像及图像按钮除外)。 相关的控件有:全部控件。 默认值:无59凌云书屋12.4 对话框设计的原则与规范 设计一个对话框除了考虑它的功能外,还应该考虑它的外观和是否便于操作,需要遵循一定的设计准则。12.4.1 一般原则1. 美观 对话框的外观是非常重要的。杂乱无章的对话框会使操作人员难以操作。因此,必须从用户的观点出发,设计既美观又实用的对话框。2. 便于操作 用户关心的是控件的位置
59、和使用是否便于操作。经常用到的控件,应尽可能安排在较为突出的位置。相关数据的控件,例如点的X、Y、Z坐标,应尽量位于相邻的位置。3. 语言文字 尽管对话框可采用图形界面,但大部分的信息还是需要文字描述的,如对话框的标题,按钮的标签等。因此文字说明既要准确,又要便于理解。 60凌云书屋4. 控件设计一致性 对话框的样式、风格不仅在具体的应用程序内部保持一致,而且应该与相关的应用程序保持一致,应尽量与AutoCAD系统的对话框风格一致,以便操作人员容易掌握。图12-26插入图块对话框5. 便于操作控制 对话框相对于命令行的优点是操作顺序不受限制,例如图12-26所示插入图块的对话框,图块的名字、插
60、入基点、比例、旋转角度的输入顺序是随意的。但有些数据存在着一定的制约关系,例如图块的插入基点、比例、旋转角既可以用鼠标在屏幕上确定,也可以在相应的编辑框输入数据,但不需要同时采用这两种方式。利用切换开关的状态,即可很好地解决这个问题。若打开切换开关,相应的编辑框被禁用(变灰),就只能采用通过鼠标在屏幕上确定的方法。61凌云书屋 若嵌套式地打开多个对话框,应采用层叠方式,保留已打开的对话框,且最后打开的对话框位于最上层。这样便于了解这些对话框之间的关联状况,也表明每个对话框来自何处,归于何处。6. 实时反馈 必须确保操作人员实时看到施加到对话框上的每一步操作,例如数据更新、颜色改变。当某一选择排
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2019-2025年一级建造师之一建民航机场工程实务强化训练试卷A卷附答案
- 高管如何优化全年工作安排计划
- 2025中学厨师劳动合同
- 出售造型工具合同范例
- 美术课堂管理与纪律培养策略计划
- 江苏eps构件施工方案
- 出售大型设备合同标准文本
- 大型充电桩电路施工方案
- 农业产品销售代理合同样本
- 养生店加盟合同样本
- 外阴、阴道上皮内瘤样病变的诊治
- 建模师职业生涯规划与管理
- 华为财务管理(6版)-华为经营管理丛书
- 化工工艺有机废气处理装置技术规范
- 【基于机器学习的旅游景区日客流量预测方法文献综述4500字】
- 超声技术学智慧树知到课后章节答案2023年下杭州医学院
- 盐酸乙醇标准溶液配制方法
- 厂区动火作业安全规程
- 急诊科运用PDCA对急诊患者预检分诊登记系统使用率低原因分析品管圈鱼骨图柏拉图对策拟定
- 网络安全知识竞赛题库及答案 1000题
- 拉萨租房合同房屋租赁合同租房合同书
评论
0/150
提交评论