《(完整)4_UG二次开发实用教程第四章》由会员分享,可在线阅读,更多相关《(完整)4_UG二次开发实用教程第四章(62页珍藏版)》请在金锄头文库上搜索。
1、第 4 章 用户界面开发技术 UG 用户可以通过用户界面与应用程序及UG 系统进行交互操作,界面 开发工具包括:菜单编辑工具UG/Open MenuScript 、对话框编辑工具 UG/Open UIStyler 、系统对话框以及MFC 等,用户可以综合运用各种界面 开发工具来开发出适合用户自己的菜单、快捷工具条和对话框, 从而实现 应用程序与 UG系统用户界面下的无缝集成。 4.1 UIStyler对话框 UIStyler是用户开发 UG对话框的可视化工具,它可以避免复杂的图 形用户接口( GUI)编程,其设计对话框的方式与Visual C+ 很相似,即 利用对话框中基本单元的组合生成不同的
2、对话框,对话框中所有控件设计 都是实时可见的。 UG/Open UIstyler主要提供了以下的功能: 1、 提供了让用户创建UG风格对话框的可视化环境, 并能生成 UG/Open UIStyler文件和 C代码,从而使用户在使用时不必考虑图形界面的实现。 2、利用可视化环境快速生成UG风格的对话框,从而减少开发时间。 3、通过选取和放置控件,从而实现所见即所得。 4、可以在对话框中实现用户自定义的位图。 5、提供了属性编辑器,从而允许用户设置和修改控件属性。 6、UG/Open UIStyler生成的对话框可与UG/Open MenuScript 、 UG/Open API 、 UG/Ope
3、n GRIP 集成,便于用户执行二次开发程序。 4.1.1 UIStyler对话框的应用 4.1.1.1 对话框的应用环境 UG的 UIStyler应用模块提供给用户可视化建立UG风格对话框的功 能 。 在UG 主 菜 单 中 选 择 菜 单 项 “ Application User Interface Styler.”,进入 UIStyler应用模块, UIStyler可视化界面如图4-1 所示。 图 4-1 UIStyler 可视化界面 4.1.1.2 对话框设计 UIStyler可视化界面包括基本对话框、对象浏览器、属性编辑器、 控件栏和控件编辑工具五部分。 用户在控件栏中选择控件后放置
4、在基本对 话框中,通过对象浏览器查看在基本对话框中设置的控件对象信息、利用 控件编辑工具调整控件布局, 通过属性编辑器编辑对话框及指定控件的属 控件 控件编辑工 对 象 浏 览 基本对话 属性编辑 性。 利用 UIStyler创建对话框并保存,系统将自动生成三个文件: 1*.c文件:对话框C 语言源文件的模板文件,用户复制该模板文 件,补充回调函数代码,将生成对话框应用程序文件,.dll文件应放在 应用程序主目录的startup子目录下,在 UG系统启动是加载; 2*.h 文件:定义 *.c 文件中函数原型的 *.c 文件的头文件; 3*.dlg文件:对话框文件,该文件需要被复制到应用程序主目
5、录 的 application子目录下,由用户应用程序调用。 4.1.1.3 对话框的应用步骤 (1)设计对话框界面草图; (2)利用 UIStyler工具创建对话框; (3)设置对话框中的回调函数; (4)保存对话框; (5)将系统自动生成的对话框C语言模板文件复制到VC+ 项目中; (6)修改 C文件,添加回调函数代码,编译连接文件; (7) 将对话框文件(.dlg ) 复制到相应的目录下, 将共享库文件(.dll) 复制到相应的目录下; (8)运行、测试及调试应用程序。 具 体 每 一 步 的 详 细 介 绍 请 参 考 系 统 帮 助 文 件 中Tools User Interface
6、 Styler。在 UIStyler对话框开发过程中,涉及到编程的仅5、 6 两个步骤。 4.1.1.4 基本对话框 图 4-2 是一个最简单的对话框,由三个系统按钮和对话框标题组成。 对话框的属性包括基本属性、被选择属性和回调函数。 图 4-2 基本对话框 1、对话框基本属性 对话框的基本属性如图4-3 所示。其中包括对话框标题、提示信息、 对话框前线名称、调用对话框的形式以及导航按钮等。 图 4-3 对话框基本属性 对话框标题(Dialog Title ):对话框标题显示在对话框的标题栏中。 提示信息( Cue ):对话框提示信息将显示在UG的提示栏中。 前缀名称( Prefix Name
7、 ):对话框前缀名称将作为所有对话框控件 名和对话框回调函数名的前缀,默认值为CHANGE。注意:同一工程中的 不同对话框应选用不同的前缀名称。 对话框类型(Dialog Type) : 对话框类型有 Bottom 和 Top两种, Bottom 类型表明该对话框需使用导航按钮,Top 类型则相反,一般采用Bottom 类型。 对话框调用点( Launch Dialog From ):对话框调用点是指对话框被 调用的位置和方式,包括回调函数调用、菜单调用、User Exit调用和所 有调用方式。 导航按钮设置( Navigation Buttons ):UIStyler提供了 OK 、BACK
8、 、 APPLY 和 CANCEL4 种导航按钮。对所有的对话框,OK和 CANCEL 按钮都是 必须的。对已经选择的导航按钮,还可以指定其激活状态。在导航按钮激 活栏里没有被激活的导航按钮, 在对话框被调用时, 按钮是不能被单击的。 对话框尺寸( Allow Dialog to Resize):当对话框的允许尺寸改变 属性被设置时,对话框在调用时,允许用户改变对话框的尺寸。 2、对话框选择属性 对话框的选择属性如图4-4 所示。包含了对话框激活开关、 对话框选 择方式和对话框选择范围定义。选择方式定义了在当前对话框被激活时, 在窗口中选择对象的方式是否变化。其共有 3 种,即无变化(继承上次
9、选 择操作的属性定义)、单选、鲁棒选择等。选择范围定义了当前对话框被 激活时,被选择对象所有范围是否变化。其有4 种方式,即不变化、在装 配中、仅在工作部件中、在工作部件和子装配中。 图 4-4 对话框选择属性 2、对话框基本回调函数 对话框的基本回调函数如图4-5 所示。所有对话框都有 6 种基本回调 函数,它们分别是 APPLY 按钮的回调函数、 BACK 按钮的回调函数、 CANCEL 按钮的回调函数、 OK按钮的回调函数、对话框构造函数和对话框析构函 数。对话框构造函数在 UG构造对话框完成之后, 用户应用执行之前调用。 由于此时对话框上的所有控件都可以被使用,因此构造函数是初始化对话
10、 框的最佳位置。 对话框析构函函数是在UG对话框关闭之前被调用, 此时, 对话框中的控件仍然可以被访问到。对话框析构函数为用户提供了诸如释 放内存等析构操作的位置。 图 4-5 对话框回调函数 4.1.2 UIStyler控件 4.1.2.1 控件种类 UIStyler提 供 的控件 有 静态文 本 ( label )、 整型 数值输 入框 (Integer )、浮点型数值输入框(Real)、字符串输入框( String )、 宽字符输入框( Wide String )、多行文本框( Multi-line Text)、按钮 (Push Button ) 、 复选框(Toggle) 、 分隔线(
11、Separator ) 、 位图 (Bitmap) 、 布局按钮(Button Layout ) 、 下拉列表框(Option Menu ) 、 单选按钮(Radio Box)、工具组( Tool Palette )、整型数滑动条( Scale Integer )、实 型数滑动条( Scale Real )、单选列表框( Single Selection List)、 多选列表框( Multi-Select List )、单选框( Selection Box)、滚动窗 口(Scrolled Window )等控件,控件具体用法与VB等可视化语言相似, UIStyler控件种类如图 4-6 所示
12、。 图 4-6 对话框控件 4.1.2.2 控件访问 4.1.2.2.1 常用数据类型和函数 访 问UIStyler控 件 经 常 用 到 的 数 据 类 型 是 结 构 UF_STYLER_item_value_type_s、函数UF_STYLER_create_dilaog() 、函 数 UF_STYLER_ask_value() 和函数 UF_STYLER_set_value()。 1、UF_STYLER_item_value_type_s 结构 UF_STYLER_item_value_type_s 通常在查询对话框控件属性和 设置对话柜控件属性时使用。如函数UF_STYLER_ask
13、_value() 的输出参数 和函数UF_STYLER_set_value() 的输入参数。 结构见 UF_STYLER_item_value_type_s定义如下: struct UF_STYLER_item_value_type_s int reason; const char *item_id; int subitem_index; int count; int item_attr; int indicator; UF_STYLER_value_t value; ; 表 4-1 结构 UF_STYLER_item_value_type_s的成员说明 成员成员说明 reason 表明触发回
14、调函数的原因,一般不需要用户修改 item_id 表示控件的标识 subitem_index 用来标识某些控件(比如:Option Menu 、Radio Box )子对象 count 当 value 是数组时,表示数组的长度 item_attr 当前结构变量描述的控件属性 indicator 指明 value 的数据类型 value union 类型的数据,表明控件的值。注意:必须利用函数 UF_STYLER_free_value 释放为字符串或数组申请的内存。 表 4-2 对话框控件的常用属性 属性描述 Label 控件的文本描述, 一般表示控件用途;如果控件设置了位图属性, 则显示为文本
15、提示信息 Object Identifier 控件标识 Value 控件内容,可以在构建对话框时定义,也可以通过程序进行设定 Bitmap 位图文件,可以是 UBM 、XPM 或 BMP文件 Sensitive 控件的激活开关,TRUE为激活, FALSE为非激活 Focus 键盘聚焦,即对话框弹出时键盘的输入位置 Visibility 控制控件的可见性,TRUE为控件可见, FALSE为不可见 Item Type 控件类型 List Deselect 取消列表框中选项的选中状态 List Insert 在列表框中插入若干选择项 List Delete 删除列表框中的指定选项 List Sho
16、w 设置列表框中显示的选择项 2、UF_STYLER_ask_value() 函数 通过函数 UF_STYLER_ask_value() 查询对话框控件的属性。该函数只 能用在对话框定义的回调函数中,其语法格式如下: extern int UF_STYLER_ask_value( int dialog_id, UF_STYLER_item_value_type_p_t value ); 表 4-3 函数 UF_STYLER_ask_value() 的成员说明 参数参数描述 dialog_id 输入参数。表示被查询控件所属对话框的标识,通常是由styler对 话框传递回调函数的 value 输入 / 输出参数。 作为输入参数, value 指明查询对象和该对象的属性; 作为输出参数,value返回被查询控件的属性。必须利用函数 UF_STYLER_free_value 释放字符串或数组申请的内存。 3、UF_STYLER_set_value()函数 函数 UF_STYLER_ask_val