《对话框的设计与制作.ppt》由会员分享,可在线阅读,更多相关《对话框的设计与制作.ppt(28页珍藏版)》请在三一办公上搜索。
1、第7章 对话框的设计与制作,CAD二次开发技术及其工程应用,多媒体课件,本章内容:,7.1 概述7.2 对话框管理程序设计 7.3 对话框应用举例,7.1 概述,对话框(DialogBox)是一种边界固定的窗口,也是一种人机交互的主要界面。它具有良好的视觉效果,操作方便、直观,输入数据与顺序无关。所以当今的几乎所有软件都要用到对话框与用户交流。,在Windows环境下对AutoCAD进行开发时,可以采用两种方式使用对话框技术:一种是利用 Windows的对话框设计技术;另一种是使用系统提供的可编程对话框(Pragram Dialog Box,简称PDB)技术。,7.1.1 对话框的组成,对话框
2、是一个弹出式窗口,它与用户进行信息通信,一般被用于一项特定的与输入有关的任务。对话框是由一个或若干个不同功能的小框组成,这些小框被称为对话框的控件。对话框是一个弹出式窗口,它的控件包含在这个弹出窗口内,提供多种方式实现用户各种数据的交互输入,如图7-1所示。AutoCAD的PDB设置预定义的控件有按钮、复选框、图象、弹出式列表、文本和编辑框等。,为了使对话框布局合理和操作界面良好,AutoCAD允许用户把这些控件进行分组,组成一行或一列,并用在其外面加上框线或不加框线的方法组成更为复杂的控件组,以完成一项复杂的任务,例如列、行、加框列和加框行等。控件和控件组在对话框中的布局与功能,由控件的属性
3、来定义。,用户利用对话框中的控件输入文本、选择一些项以及指定某一特定的命令动作等。对话框中的编辑框是一个用户可以在其中输入和编辑文本的子窗口,一般用于输入文件名、点的坐标、距离和长度等数据。,列表框用于为用户显示各种选择,用户可以在列表框中选择一个或多个项。例如,在图7-2所示的文件打开对话框中使用列表框显示某个目录下的所有文件名,用户可以从列表中选择一个文件名。,图7-2 打开文件对话框,7.1.2 对话框的设计环境与步骤,1 对话框的设计环境,在AutoCAD的SUPPORT目录中包含有BASE.DCL和ACAD.DCL两个文件。在文件BASE.DCL中,对基本控件及控件类型进行了预定义,
4、它还包含了常用控件原型的定义,PDB不允许用户重新定义预定义的控件。因此,用户永远也不要修改BASE.DCL,否则将会出错,使标准AutoCAD对话框以及自己的应用程序或其它应用程序的对话框均不能显示。在文件ACAD.DCL中,包含所有由AutoCAD使用的标准对话框定义。若用户需要对标准对话框的显示方式进行定制,就可以修改该文件,但不能通过修改ACAD.DCL来改变其功能。,2 对话框的设计步骤,设计对话框的一般步骤是:,(1)确定应用程序需要输入的数据及其类型。(2)分析需要输入的每一项数据,确定每一项数据和 使用控件的类型,这一步需要用户根据输入数据的类型 和各种控件的功能来决定。(3)
5、根据控件主次关系和美学观点进行对话框的布局 设计。(4)依据对话框的布局设计编写DCL文件。(5)编写应用程序处理对话框。编写应用程序可使用AutoLISP,也可用Visual LISP或ARX等。,7.1.3 对话框的控件及其属性,1 对话框控件的种类,对话框控件是对话框的基本组成部分,是输入数据的一种控制形式。AutoCAD系统的PDB预先定义了一些控件,这些控件依据功能可以分为六类:可操作控件、装饰和信息控件、控件组、文本组控件、对话框退出按钮和错误信息控件,如图7-3所示。,图7-3 对话框部分控件的外观,在AutocAD的子目录SUPPORT中有一个名为BASE.DCL的文本文件。该
6、文件已预定义了全部控件。通过将各控件组合成行或列,可以建立更为复杂的控件组。这种控件组可以加框,也可以不加框,而且在DCL文件中可以作为单个控件来调用。但是,用户选择时,不能选择控件组,只能选择其中的一个控件。,2 对话框控件的属性,控件的属性用于定义它的布局、功能、操作特性和显示特性,类似于编程语言中的变量。属性由属性名和属性值组成,属性值必须是以下几种特定的类型之一:,数值 包括整数和实数。表示距离、大小和长度的属性,其值通常用整数表示。,保留字 保留字是由字母、数字和字符组成的标识符,它必须以字母开头。保留字的大小写是有区别的,如False和false是不同的。,字符串 字符串是用双引号
7、引起来的文本内容。若字符串中还要包含一个双引号,则在该双引号前必须有一个反斜杠。,为了区分字符串中的特殊字符,DCL文件规定了以下几个换码符:”引号 反斜杠 n 换行符 t 水平制表符,7.2 对话框管理程序设计,当用户为自己的应用程序建立对话框时,就需要对拟建立的对话框的各个控件及其布局格式进行定义。对话框的定义是用对话框控制语言编写文件来定义,该文件称为DCL文件。DCL文件是按一定的语法规则编写的文本文件,扩展名是.DCL,可以用任何文本编辑程序建立。在系统的支撑目录/SUPPORT/目录下,提供了系统预定义的DCL 文件BASE.DCL和ACAD.DCL两个样板文件。用户在编写DCL文
8、件时,可以直接引用BASE.DCL文件中预定义的控件,也可以通过包含指令来引用除了BASE.DCL和ACAD.DCL文件之外的其他DCL文件中定义的控件。,7.2.1 DCL文件的内容结构,为了更好的调用另一个DCL文件中定义的控件或子组装,DCL文件中允许包含另一个DCL文件。因此,DCL文件中通常包含以下三部分内容:,其它DCL 文件的调用。对话框的定义。控件原型和子组装的定义。,7.2.2 控件的定义与调用,1 控件的定义格式,控件名:预定义控件名1:预定义控件名2:.属性名1属性1值;属性名2属性2值;.,其中,控件名只能含字母、数字或下划线,而且必须以字母打头。预定义控件名至少有一个
9、,新定义的控件继承所有指定的预定义控件的属性。大括号中指定的属性名如果与所指定的预定义控件的属性名相同,则用指定的属性值取代所继承的属性值;如果属性名不同,则指定的属性作为新定义控件的属性补充。当几个预定义控件中包含某些相同的属性名而其属性值不同时,DCL文件采用“先入为主”的方法,即继承最先出现的预定义控件的属性。,2 控件的调用格式,控件的调用往往是嵌套在控件的定义之中,拟调用的控件名必须是已定义的控件名。调用格式有以下两种:,(1)简单调用格式 这是最简单的调用格式,格式如下:拟调用的控件名;,(2)复杂调用格式这是一种比较常用的调用格式,其格式如下:拟调用的控件名 属性名1=属性1值;
10、属性名2=属性2值;,7.2.3 对话框的设计原则与布局技巧,1.对话框布局设计的基本原则,在对话框的布局设计中,建议考虑以下几个方面的内容:,外形美观 操作和控制方便 功能定义和提示的一致性 控件的互锁功能 良好的容错能力 文字内容规范 控件编辑的一般要求 缺省值和助记键,2.对话框布局技巧,把对话框中的控件按逻辑相关安排成行或列,形成控件组,为用户提供方便。键盘输入的数据有自然顺序的应按其自然顺序排列,例如三维坐标按X、Y、Z排列。把对话框中的输入操作,例如编辑框、列表框等,按水平或者垂直排列,以便用户用Tab键改变输入的焦点,使光标沿直线移动。当对话框中的控件排列有困难时,可通过调整控件
11、组内控件的布局、调整控件之间的间隙、调整右边或下边的空隙和调整框中行和列周围的间隙等方式,使对话框的布局更趋于合理。,7.2.4 对话框程序的结构,1 对话框应用程序示例,如图所示的对话框,在该对话框中只有一个文本和一个按钮。编写DCL文件 从图中可以看出:该对话框的标题是“对话框示例”,是由对话框的label属性指定,同时用到了文本控件text和一个按钮。文本控件用于显示文本信息“矿图系统,欢迎使用”。,该对话框的DCL文件的格式如下:system:dialog label=对话框示例;:textlabel=矿图系统,欢迎使用;:button key=accept;label=确定;is_d
12、efault=true;,编写应用程序 驱动“system”对话框的LISP程序如下:(defun C:shows(/dcl_i);定义命令SHOWS(setq dcl_i(load_dialogsystem.dcl);装入DCL文件(if(not(new_dialog system dcl_i);初始化并显示对话框(exit);若找不到对话框则退 出程序(action_tile“accept”“done_dialog)”);将OK按钮和表 达式建立关系(start_dialog);启动对话框并开始对话(unload_dialog dcl_i);卸载DCL文件),2 对话框函数调用顺序,调用(
13、load_dialog)函数加载DCL文件。调用(new_dialog)函数,在AutoCAD的图形屏幕上 显示指定的对话框。通过专用函数对必要的控件进行初始化。调用(start_dialog)函数将控制权交给对话框,使 用户进行交互操作。处理用户的输入、参数保存等。退出对话框操作,将控制权重新交给应用程序。,从上述示例可以总结出调用对话框处理函数的一般步骤:,7.3 对话框应用举例,7.3.1 对话框格式文件的设计,在设置绘图环境模块中,用户需要确定图纸的幅面大小尺寸,绘图比例和标题栏式样等参数,而这些需要通过对话框的形式提请用户输入或选定。根据输入的数据主要分为两类,一类是确定图纸的结构参
14、数,另一类是标题栏中填写的数据,因此,采用两个对话框即初始化设置对话框和标题栏输入对话框管理数据的输入。,7.3.2 应用程序模块设计和运行操作,当用户把对话框定义文件和LISP程序模块编辑成文件后,假若LISP文件的名称为“SZTF.LSP”。在AutoCAD系统的环境下,把“SZTF.LSP”程序装入。然后在命令行下输入SZTF关键字。操作过程如下:命令:(LOAD“SZTF”)命令:SZTF 结果就显示如图7-10所示的对话框,当用户输入或选定合适的参数后,单击“确定”按钮,则对话框消失,就会按照用户的要求设置绘图的初始化环境。,本章小结本章主要内容:概述 对话框管理程序设计 对话框应用举例,本章内容到此结束,再见,