对话框及其应用_第1页
对话框及其应用_第2页
对话框及其应用_第3页
对话框及其应用_第4页
对话框及其应用_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

1、 对话框及其应用对话框是人机交互的主要界面之一,它具有操作直观、方便、易于输入和修改数据等特点,是现代软件设计必不可少的一种风格形式。在对AutoCAD进行软件二次开发时,常使用对话框设置工作环境、修改系统参数和输入初始数据。AutoCAD为用户提供的可编程对话框技术是由专用的对话框描述语言DCL(Dialog Control Language)和AutoLISP驱动函数两部分内容组成。5.1 对话框的组成对话框是由框架和包含在框架内的各种控件所组成。AutoCAD的PDB(Pragram Dialog Box)提供的预定义控件有按钮(单选框、复选框、图像、动作)、弹出式列表框、文本编辑框和滑

2、动条等。用户可以通过把这些控件进行分组,按行或按列进行组合,并用在其外面加上框线或不加框线的方法组成更为复杂的控件组。控件和控件组在对话框中的布局、外观与功能由控件的属性来定义。 基本组件:复选框:(Toggle/CheckBox)单选按钮(Radio_Button) 选择按钮(Button)编辑框(Edit_Box)列表框(List_Box)下拉式列表框(Popup_List) 滑块(Slider)图像(Image)说明文字(Text) 对话框程序的运行过程第一步:在AutoLisp程序中启动DCL对话框界面;第二步:用户在对话框里输入数据,完成交互操作;第三步:将用户输入的数据返回Auto

3、 Lisp程序中执行。 认识对话框及其控件(1) 认识对话框及其控件(2) 认识对话框及其控件(3)5.2 基本控件及其定义1、按钮(button)功能:主要用于启动和执行命令等动作,如“确定”、“取消”、“帮助”等。1)预定义的标准按钮(button)及其引用1)、单一确定按钮引用方式:ok_only;3)、确定-取消-帮助按钮引用方式:ok_cancel_help;2)、确定-取消按钮引用方式:ok_cancel;自定义按钮(button):retirement_button label = 设计计算; key = accept; is_default = true; :row fixed

4、_width = true; alignment = centered; :retirement_button label = 设计计算; key = accept; is_default = true; spacer_5; :retirement_button label = 直接绘图; key = drawing; spacer_5; . 2、单选按钮(radio_button)功能:用于相互排斥的有限选择集合中的一个选择,通常由多个单选按钮组成一组,在某一时刻,只有其中一个被选择。1)、单选行按钮组Boxed_radio_row Radio_row2)、单选列按钮组Boxed_radio

5、_columnRadio_column3、复选框按钮(toggle_button) 相当于一个开关,只有打开和关闭两个状态。4、图像按钮(image_button)当选定一个图像按钮时,程序获得实际选取点的坐标,据此来确定用户选取的内容。5、列表框(list_box) 一个列表框就是一个由若干字符串组成的列表。其目的是要显示一个列表供用户从中选择一项。6、弹出式列表(popup_list) 弹出式列表在功能上与列表框相同,但它占据的空间较小。表框右边有一个向下箭头,单击箭头时,将弹出一个列表。7、文本编辑框(edit_box) 文本编辑框是一个输入和编辑文本的子窗口,通常用于输入文本名、点的坐

6、标、长度距离以及其它参数。 8、滑动条(slider) 用户可以将滑动条的指示器左右拖动,以得到一个数值。这个数值以字符串的形式返回。 9、图像(image) 该控件为对话框的一个矩形区域,在该区域可显示一幅矢量图形或幻灯片。其功能就是为了增强直观性。10、文本(text) 该控件显示文本字符串,通常用于显示一个标题或一些提示信息。11、间隙(spacer) 该控件是空控件,无任何显示。主要用于调整对话框相邻控件间的间距和布局。由于AutoCAD能自动调整控件之间的间距,所以该控件使用较少。12、其它控件组 行(row) 列(column)加框行(boxed_row)、加框列(boxed_co

7、lumn)单选行(radio_row)、 单选列(radio_column)加框单选行(boxed_radio_row)加框单选列(boxed_radio_column)。控件的属性用于定义控件的功能与布局。控件的属性类型有四种:整型数、实型数、字符串和保留字。保留字是由字母开头的字母数字序列,且有大小写之分,如属性Width就不能等同于width;属性值True就不是true。应用程序总是把属性当作字符串来检索,若用户的应用程序需要使用数字值,就必须根据需要把字符转换成数字。5.3 控件的属性1、标签属性(label, 如:label=“半径”;) 用于对话框或控件的一个标题,它的取值类型为

8、一个字符串。对不同的控件,它在对话框中的位置不同。例如:按钮的标签属性值出现在按钮内,加框列控件的标签属性出现在框的上方等。 如果标签字符串中的一字符前面出现“&”,则该字符就作为该控件的助记符。助记符在标签显示时带有下划线。常用四类控件属性:1) 关键字属性(key, 如:key=“R”;) key的值为一区分大小写的字符串,每一个控件都必须有唯一的关键字属性,以便应用程序对其进行操作。2)值属性(value, 如:value=25;)Value属性用于指定控件的初始值,该值在程序运行中可以通过用户输入或在应用程序中调用set_tile函数来修改。不同类型控件的属性值含义也可能不同,

9、但对对话框布局没有影响。2、关键字属性和值属性1) 宽度属性(Width)和高度属性(Height) 这两个属性用于指定控件的宽度和高度。除图像控件和图像按钮必须指出这些尺寸外,其它控件一般不需要指定这些值,而使用默认值在布局时动态分配。由这两个属性指定的值确定控件的最小宽度和最小高度。在布局时,除非由fixed_width和fixed_height属性所确定,这两个尺寸都可以被扩展。3、布局属性和尺寸属性2) 对齐属性(Alignment) 该属性用于指定一个控件组中控件的对齐方式。对按列排列的控件组,其子控件可以取left、right或centered,默认值为left。对按行排列的控件组

10、,其子控件可以取top、bottom或centered,默认值为centered。1)is_enabled: 取值true或false,默认值为true。 该属性用于指定控件初始是否可用。若指定为false,则该控件被初始禁止,即开始显示对话框时,该控件变灰,可见但不可选择。在程序运行时,可由mode_tile函数改变其状态。4、功能属性3)mnemonic: 该属性用于给控件指定键盘助记符。它的值是单个字符的字符串,并且该字符必须是控件标签(label)中的一个大小写一致的字母。使用该属性是为了在操作对话框时,通过助记符改变聚焦,但不选择控件。该属性没有默认值。 2)is_tab_stop:

11、 取值true或false,默认值为true。用于指定是否可用Tab键在控件之间移动焦点。4)action: 该属性用于给控件指定一个VLISP表达式。当用户选择该控件时,就执行这个表达式。属性值必须是一个字符串形式的有效的VLISP表达式,但不能是AutoLISP中的command函数。该属性没有默认值。 (一) DCL文件结构 定义对话框的文件是一个文本文件(ASCII码文件),可在文本编辑器中编写,该文件的扩展名为*.dcl。系统定义的对话框存放在acad.dcl中,文件base.dcl中也为用户提供了许多预定义的标准控件。一个对话框本质上为树状结构形式。 5.4 DCL文件的编写方法对

12、话框名称 :dialoglabel=“主标题”; :控件名1label=“控件标题”; key=“关键字”; 其它属性 :控件名2 DCL文件的编写格式(二) 用DCL语言设计对话框 示例1:Hello:dialoglabel=“sample Window”;:textlabel=“hello world!”;Ok_only;在VLISP编辑器中,可通过“Tools”=“Interface Tools”预览所设计对话框。示例2:dxan:dialoglabel=确定图纸幅面;:boxed_radio_rowlabel=幅面规格;:radio_buttonlabel=A0; key=a0; :r

13、adio_buttonlabel=A1; key=a1; :radio_buttonlabel=A2; key=a2; :radio_buttonlabel=A3; key=a3; :radio_buttonlabel=A4; key=a4; :radio_buttonlabel=A5; key=a5; value=5;ok_cancel;示例3:yuan:dialoglabel=“绘制圆;:edit_boxlabel=圆心X(mm)=;mnemonic=X;key=X;value=50;:edit_boxlabel=圆心Y(mm)=;mnemonic=Y;key=Y;value=50;续前:

14、:edit_boxlabel=半径R(mm)=;mnemonic=R;key=R;value=25;ok_cancel;示例4:示例4的显示结果:示例5:示例5的显示结果:第六讲 对话框的程序驱动能够编写对话框文件,仅仅是迈出了对话框设计的第一步,事实上,编写对话框文件比较容易,而要控制对话框,使之实现应有的功能,就要下更大的功夫。要显示编写的对话框并有效控制它,需要结合AutoLISP编程。AutoLISP提供了处理对话框的各种管理函数,利用它们可以实现DCL文件的各种控制。1) action_tile函数格式:(action_tile 控件操作名 动作描述符)功能:将控件与操作表达式联系起

15、来。当用户选择了该控件时,就执行操作表达式所指定的内容。例: (action_tile “a3” “(setq l 594 h 420 c 5)”) (action_tile “accept” “(done_dialog)”) (action_tile “cancel” “(setq a 1) (done_dialog)”)6.1 常用对话框处理函数2) add_list函数格式:(add_list 字串)功能:将指定的字串加入到当前已激活的列表中。例: (add_list “1 1.5 2 2.25 2.5 3 3.5 4 5”)3) client_data_tile函数格式: (clien

16、t_data_tile 控件操作名 数据属性名)功能:把应用程序专用数据与由参数控制操作名指定的控件相联系。4) dimx_tile函数和dimy_tile函数格式:(dimx_tile 控件操作名) 或(dimy_tile 控件操作名)功能:用于获得控件的宽度和高度。控件的坐标原点在控件的左上角。5) done_dialog函数格式: (done_dialog 结束码 )功能: 结束当前对话框。结束码是由(start_dialog)函数返回的值,可以省去,若有,必须为正整数。6) end_image函数格式:(end_image) 功能:结束创建当前活动图像,一般应与(start_image

17、)函数成对调用。7) end_list函数格式: (end_list)功能: 结束当前列表框或弹出式列表的选择列表项的处理。一般与(start_list)函数成对出现。8) fill_image函数格式:(fill_image x1 y1 x2 y2 color) 功能:在当前激活的图像中画填充矩形。该矩形的两个角点坐标是(x1, y1)和(x2, y2), color为填充的颜色号。9) get_attr函数格式: (get_attr 控件操作名 属性名)功能: 获取DCL文件中指定控件和属性的属性值。10) get_tile函数格式:(get_tile 控件操作名) 功能:得到正在运行的控

18、件的关键字的值。返回该控件的value属性值的字符串。11) load_dialog函数格式: (load_dialog 对话框文件名)功能: 加载一个DCL文件中,这个DCL文件可以包含多个对话框的定义。若加载成功该函数返回一个整数,否则,返回一个负整数。12) mode_tile函数格式:(mode_tile 控件操作名 mode) 功能:用于设置控件的显示状态。参数mode的值和含义见下表:mode 含义0启用控件1禁用控件2设置聚焦的控件3高亮度显示编辑框中的内容4切换图像控件的高亮度显示13) new_dialog函数格式:(new_dialog 对话框名 dcl_id) 功能:初始

19、化并显示对话框,若该函数调用成功,将返回T,否则返回NIL。参数dcl_id为(load_dialog)函数返回的值。14) set_tile函数格式:(set_tile 控件操作名 value)功能:设置控件的值,参数value是要新设置的值,为字符串类型。15) slide_image函数格式:(slide_image x1 y1 x2 y2 幻灯片名) 功能:在当前激活的图像控件中显示一个AutoCAD幻灯片。显示位置由坐标点(x1,y1)和(x2,y2)指定。16) start_dialog函数 格式:(start_dialog )功能:开始对话框并接受用户输入。在调用该函数之前,你必须通过(new_dialog)函数来初始化。同时这个对话框必须在一个动作表达式或一个返回函数调用(done_dialog)函数之前,一直保持激活状态。17) start_image函数格式:(start_image 控件操作名) 功能:在图像控件中开始建立图像。应当与函数(end_image)成对使

温馨提示

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

最新文档

评论

0/150

提交评论