4UG二次开发实用教程 第四章.docx

上传人:b****7 文档编号:23749041 上传时间:2023-05-20 格式:DOCX 页数:75 大小:671.37KB
下载 相关 举报
4UG二次开发实用教程 第四章.docx_第1页
第1页 / 共75页
4UG二次开发实用教程 第四章.docx_第2页
第2页 / 共75页
4UG二次开发实用教程 第四章.docx_第3页
第3页 / 共75页
4UG二次开发实用教程 第四章.docx_第4页
第4页 / 共75页
4UG二次开发实用教程 第四章.docx_第5页
第5页 / 共75页
点击查看更多>>
下载资源
资源描述

4UG二次开发实用教程 第四章.docx

《4UG二次开发实用教程 第四章.docx》由会员分享,可在线阅读,更多相关《4UG二次开发实用教程 第四章.docx(75页珍藏版)》请在冰豆网上搜索。

4UG二次开发实用教程 第四章.docx

4UG二次开发实用教程第四章

第4章用户界面开发技术

UG用户可以通过用户界面与应用程序及UG系统进行交互操作,界面开发工具包括:

菜单编辑工具UG/OpenMenuScript、对话框编辑工具UG/OpenUIStyler、系统对话框以及MFC等,用户可以综合运用各种界面开发工具来开发出适合用户自己的菜单、快捷工具条和对话框,从而实现应用程序与UG系统用户界面下的无缝集成。

4.1UIStyler对话框

UIStyler是用户开发UG对话框的可视化工具,它可以避免复杂的图形用户接口(GUI)编程,其设计对话框的方式与VisualC++很相似,即利用对话框中基本单元的组合生成不同的对话框,对话框中所有控件设计都是实时可见的。

UG/OpenUIstyler主要提供了以下的功能:

1、提供了让用户创建UG风格对话框的可视化环境,并能生成UG/OpenUIStyler文件和C代码,从而使用户在使用时不必考虑图形界面的实现。

2、利用可视化环境快速生成UG风格的对话框,从而减少开发时间。

3、通过选取和放置控件,从而实现所见即所得。

4、可以在对话框中实现用户自定义的位图。

5、提供了属性编辑器,从而允许用户设置和修改控件属性。

6、UG/OpenUIStyler生成的对话框可与UG/OpenMenuScript、UG/OpenAPI、UG/OpenGRIP集成,便于用户执行二次开发程序。

4.1.1UIStyler对话框的应用

4.1.1.1对话框的应用环境

UG的UIStyler应用模块提供给用户可视化建立UG风格对话框的功能。

在UG主菜单中选择菜单项“Application→UserInterfaceStyler...”,进入UIStyler应用模块,UIStyler可视化界面如图4-1所示。

图4-1UIStyler可视化界面

4.1.1.2对话框设计

UIStyler可视化界面包括基本对话框、对象浏览器、属性编辑器、控件栏和控件编辑工具五部分。

用户在控件栏中选择控件后放置在基本对话框中,通过对象浏览器查看在基本对话框中设置的控件对象信息、利用控件编辑工具调整控件布局,通过属性编辑器编辑对话框及指定控件的属性。

利用UIStyler创建对话框并保存,系统将自动生成三个文件:

1.*.c文件:

对话框C语言源文件的模板文件,用户复制该模板文件,补充回调函数代码,将生成对话框应用程序文件,.dll文件应放在应用程序主目录的startup子目录下,在UG系统启动是加载;

2.*.h文件:

定义*.c文件中函数原型的*.c文件的头文件;

3.*.dlg文件:

对话框文件,该文件需要被复制到应用程序主目录的application子目录下,由用户应用程序调用。

4.1.1.3对话框的应用步骤

(1)设计对话框界面草图;

(2)利用UIStyler工具创建对话框;

(3)设置对话框中的回调函数;

(4)保存对话框;

(5)将系统自动生成的对话框C语言模板文件复制到VC++项目中;

(6)修改C文件,添加回调函数代码,编译连接文件;

(7)将对话框文件(.dlg)复制到相应的目录下,将共享库文件(.dll)复制到相应的目录下;

(8)运行、测试及调试应用程序。

具体每一步的详细介绍请参考系统帮助文件中Tools→UserInterfaceStyler。

在UIStyler对话框开发过程中,涉及到编程的仅5、6两个步骤。

4.1.1.4基本对话框

图4-2是一个最简单的对话框,由三个系统按钮和对话框标题组成。

对话框的属性包括基本属性、被选择属性和回调函数。

图4-2基本对话框

1、对话框基本属性

对话框的基本属性如图4-3所示。

其中包括对话框标题、提示信息、对话框前线名称、调用对话框的形式以及导航按钮等。

图4-3对话框基本属性

对话框标题(DialogTitle):

对话框标题显示在对话框的标题栏中。

提示信息(Cue):

对话框提示信息将显示在UG的提示栏中。

前缀名称(PrefixName):

对话框前缀名称将作为所有对话框控件名和对话框回调函数名的前缀,默认值为CHANGE。

注意:

同一工程中的不同对话框应选用不同的前缀名称。

对话框类型(DialogType):

对话框类型有Bottom和Top两种,Bottom类型表明该对话框需使用导航按钮,Top类型则相反,一般采用Bottom类型。

对话框调用点(LaunchDialogFrom):

对话框调用点是指对话框被调用的位置和方式,包括回调函数调用、菜单调用、UserExit调用和所有调用方式。

导航按钮设置(NavigationButtons):

UIStyler提供了OK、BACK、APPLY和CANCEL4种导航按钮。

对所有的对话框,OK和CANCEL按钮都是必须的。

对已经选择的导航按钮,还可以指定其激活状态。

在导航按钮激活栏里没有被激活的导航按钮,在对话框被调用时,按钮是不能被单击的。

对话框尺寸(AllowDialogtoResize):

当对话框的允许尺寸改变属性被设置时,对话框在调用时,允许用户改变对话框的尺寸。

2、对话框选择属性

对话框的选择属性如图4-4所示。

包含了对话框激活开关、对话框选择方式和对话框选择范围定义。

选择方式定义了在当前对话框被激活时,在窗口中选择对象的方式是否变化。

其共有3种,即无变化(继承上次选择操作的属性定义)、单选、鲁棒选择等。

选择范围定义了当前对话框被激活时,被选择对象所有范围是否变化。

其有4种方式,即不变化、在装配中、仅在工作部件中、在工作部件和子装配中。

图4-4对话框选择属性

2、对话框基本回调函数

对话框的基本回调函数如图4-5所示。

所有对话框都有6种基本回调函数,它们分别是APPLY按钮的回调函数、BACK按钮的回调函数、CANCEL按钮的回调函数、OK按钮的回调函数、对话框构造函数和对话框析构函数。

对话框构造函数在UG构造对话框完成之后,用户应用执行之前调用。

由于此时对话框上的所有控件都可以被使用,因此构造函数是初始化对话框的最佳位置。

对话框析构函函数是在UG对话框关闭之前被调用,此时,对话框中的控件仍然可以被访问到。

对话框析构函数为用户提供了诸如释放内存等析构操作的位置。

图4-5对话框回调函数

4.1.2UIStyler控件

4.1.2.1控件种类

UIStyler提供的控件有静态文本(label)、整型数值输入框(Integer)、浮点型数值输入框(Real)、字符串输入框(String)、宽字符输入框(WideString)、多行文本框(Multi-lineText)、按钮(PushButton)、复选框(Toggle)、分隔线(Separator)、位图(Bitmap)、布局按钮(ButtonLayout)、下拉列表框(OptionMenu)、单选按钮(RadioBox)、工具组(ToolPalette)、整型数滑动条(ScaleInteger)、实型数滑动条(ScaleReal)、单选列表框(SingleSelectionList)、多选列表框(Multi-SelectList)、单选框(SelectionBox)、滚动窗口(ScrolledWindow)等控件,控件具体用法与VB等可视化语言相似,UIStyler控件种类如图4-6所示。

图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_value()的输出参数和函数UF_STYLER_set_value()的输入参数。

结构见UF_STYLER_item_value_type_s定义如下:

structUF_STYLER_item_value_type_s{

       intreason;

       constchar*item_id;

       intsubitem_index;

       intcount;

       intitem_attr;

       intindicator;

       UF_STYLER_value_tvalue;

};

表4-1结构UF_STYLER_item_value_type_s的成员说明

成员

成员说明

reason

表明触发回调函数的原因,一般不需要用户修改

item_id

表示控件的标识

subitem_index

用来标识某些控件(比如:

OptionMenu、RadioBox)子对象

count

当value是数组时,表示数组的长度

item_attr

当前结构变量描述的控件属性

indicator

指明value的数据类型

value

union类型的数据,表明控件的值。

注意:

必须利用函数UF_STYLER_free_value释放为字符串或数组申请的内存。

表4-2对话框控件的常用属性

属性

描述

Label

控件的文本描述,一般表示控件用途;如果控件设置了位图属性,则显示为文本提示信息

ObjectIdentifier

控件标识

Value

控件内容,可以在构建对话框时定义,也可以通过程序进行设定

Bitmap

位图文件,可以是UBM、XPM或BMP文件

Sensitive

控件的激活开关,TRUE为激活,FALSE为非激活

Focus

键盘聚焦,即对话框弹出时键盘的输入位置

Visibility

控制控件的可见性,TRUE为控件可见,FALSE为不可见

ItemType

控件类型

ListDeselect

取消列表框中选项的选中状态

ListInsert

在列表框中插入若干选择项

ListDelete

删除列表框中的指定选项

ListShow

设置列表框中显示的选择项

2、UF_STYLER_ask_value()函数

通过函数UF_STYLER_ask_value()查询对话框控件的属性。

该函数只能用在对话框定义的回调函数中,其语法格式如下:

externintUF_STYLER_ask_value(

intdialog_id,

UF_STYLER_item_value_type_p_tvalue

);

表4-3函数UF_STYLER_ask_value()的成员说明

参数

参数描述

dialog_id

输入参数。

表示被查询控件所属对话框的标识,通常是由styler对话框传递回调函数的

value

输入/输出参数。

作为输入参数,value指明查询对象和该对象的属性;作为输出参数,value返回被查询控件的属性。

必须利用函数UF_STYLER_free_value释放字符串或数组申请的内存。

3、UF_STYLER_set_value()函数

函数UF_STYLER_ask_value()用来改变控件属性。

该函数只能用在对话框定义的回调函数中,其语法格式如下:

externintUF_STYLER_set_value(

intdialog_id,

UF_STYLER_item_value_type_p_tvalue

);

表4-4函数UF_STYLER_set_value()的成员说明

参数

参数描述

dialog_id

输入参数,表示被查询控件所属对话框的标识,通常是由styler对话框传递回调函数的

value

输入参数,用于指明被修改的控件、控件属性和控件属性值

4.1.2.2.2访问字符串输入框(String)

设置字符串输入框的控件属性时涉及的变量与参数如表4-5所示。

表4-5String控件属性的设置

属性

变量和输入参数

变量

输入参数

Bitmap

item_attr

UF_STYLER_BITMAP

item_id

被设置的控件标识

value.string

位图文件名,UBM、XPM或BMP文件

Label

item_attr

UF_STYLER_LABEL

item_id

被设置的控件标识

value.string

显示在输入框左边的文本内容

Value

item_attr

UF_STYLER_VALUE

item_id

被设置的控件标识

value.string

显示在输入框中的文本内容

Sensitive

item_attr

UF_STYLER_SENSITIVITY

item_id

被设置的控件标识

value.integer

TRUE为控件激活,FALSE为非激活

Visibility

item_attr

UF_STYLER_VISIBILITY

item_id

被设置的控件标识

value.integer

TRUE为控件可见,FALSE为不可见

Focus

item_attr

UF_STYLER_FOCUS

item_id

被设置的控件标识

下面的一段代码实现设置字符串控件可见性的功能:

UF_STYLER_item_value_type_tvalue;

value.item_attr=UF_STYLER_VISIBILITY;

value.item_id=item_id;//控件标识

value.value.integer=TURE;//可见

UF_STYLER_set_value(dialog_id,&value);

UF_STYLER_free_value(&value);

获取字符串输入框的控件属性时涉及的变量与参数如表4-6所示。

表4-6String控件属性的获取

属性

参数

输入参数

输出参数

变量

数值

变量

数值

Value

intem_attr

item_id

UF_STYLER_VALUE

控件标识

Indicator

Count

Value.string

UF_STYLER_STRING_VALUE

1

字符串输入框的内容

Sensitive

intem_attr

item_id

UF_STYLER_SENSITIVITY

控件标识

Indicator

Count

Value.integer

UF_STYLER_INTEGER_VALUE

1

TURE为激活;FALSE为非激活

Visibility

intem_attr

item_id

UF_STYLER_VISIBILITY

控件标识

Indicator

Count

Value.integer

UF_STYLER_INTEGER_VALUE

1

TURE为可见;FALSE为非可见

ItemType

intem_attr

item_id

UF_STYLER_ITEM_TYPE

控件标识

Indicator

Count

Value.integer

UF_STYLER_INTEGER_VALUE

1

UF_STYLER_STRING_TYPE

下面的一段代码实现获取字符串控件的输入值的功能:

UF_STYLER_item_value_type_tvalue;

value.item_attr=UF_STYLER_VALUE;

value.item_id=item_id;//控件标识

UF_STYLER_ask_value(dialog_id,&value);

charsNeeded[133];

strcpy(sNeeded,value.value.string);

UF_STYLER_free_value(&value);

4.1.2.2.3访问按钮控件(PushButton)

设置按钮的控件属性时涉及的变量与参数如表4-7所示。

 

表4-7PushButton控件属性的设置

属性

变量和输入参数

变量

输入参数

Bitmap

item_attr

UF_STYLER_BITMAP

item_id

被设置的控件标识

value.string

位图文件名,UBM、XPM或BMP文件

Label

item_attr

UF_STYLER_LABEL

item_id

被设置的控件标识

value.string

显示在按钮上的文本内容

Sensitive

item_attr

UF_STYLER_SENSITIVITY

item_id

被设置的控件标识

value.integer

TRUE为控件激活,FALSE为非激活

Visibility

item_attr

UF_STYLER_VISIBILITY

item_id

被设置的控件标识

value.integer

TRUE为控件可见,FALSE为不可见

Focus

item_attr

UF_STYLER_FOCUS

item_id

被设置的控件标识

DefaultAction

item_attr

UF_STYLER_DEFAULT_ACTION

item_id

被设置的控件标识

下面的一段代码实现设置按钮控件的位图显示的功能:

UF_STYLER_item_value_type_tvalue;

value.item_attr=UF_STYLER_BITMAP;

value.item_id=item_id;//控件标识

value.value.integer=“E:

\\bitmap\PushButton.bmp”;//位图文件的路径

UF_STYLER_set_value(dialog_id,&value);

UF_STYLER_free_value(&value);

获取按钮控件属性时涉及的变量与参数如表4-8所示。

表4-8PushButton控件属性的获取

属性

参数

输入参数

输出参数

变量

数值

变量

数值

Sensitive

intem_attr

item_id

UF_STYLER_SENSITIVITY

控件标识

Indicator

Count

Value.integer

UF_STYLER_INTEGER_VALUE

1

TURE为激活;FALSE为非激活

Visibility

intem_attr

item_id

UF_STYLER_VISIBILITY

控件标识

Indicator

Count

Value.integer

UF_STYLER_INTEGER_VALUE

1

TURE为可见;FALSE为非可见

ItemType

intem_attr

item_id

UF_STYLER_ITEM_TYPE

控件标识

Indicator

Count

Value.integer

UF_STYLER_INTEGER_VALUE

1

UF_STYLER_ACTION_BUTTON_TYPE

下面的一段代码实现获取按钮控件激活状态的功能:

UF_STYLER_item_value_type_tvalue;

value.item_attr=UF_STYLER_SENSITIVE;

value.item_id=item_id;//控件标识

UF_STYLER_ask_value(dialog_id,&value);

if(value.value.integer)…;

UF_STYLER_free_value(&value);

4.1.2.2.4访问单选按钮( RadioBox)

设置单选按钮的控件属性时涉及的变量与参数如表4-9所示。

 

表4-9RadioBox控件属性的设置

属性

变量和输入参数

变量

输入参数

Label

item_attr

UF_STYLER_LABEL

item_id

被设置的控件标识

value.string

控件的描述文本内容

Value

item_attr

UF_STYLER_VALUE

item_id

被设置的控件标识

subitem_index

被选中的按钮索引,必须在选择范围之内

Sensitive

item_attr

UF_STYLER_SENSITIVITY

item_id

被设置的控件标识

value.integer

TRUE为控件激活,FALSE为非激活

subitem_index

被选中的按钮索引,必须在选择范围之内

Visibility

item_attr

UF_STYLER_VISIBILITY

item_id

被设置的控件标识

value.integer

TRUE为控件可见,FALSE为不可见

DefaultAction

item_attr

UF_STYLER_DEFAULT_ACTION

item_id

被设置的控件标识

下面的一段代码实现设置单选按钮控件标签的功能:

UF_STYLER_item_value_type_tvalue;

value.item_attr=UF_STYLER_LABEL;

value.item_id=item_id;//控件标识

strcpy(value.value.string,“控件标签名”);//标签名称

UF_STYLER_set_value(dialog_id,&value);

UF_STYLER_free_value(&value);

获取单选按钮的控件属性时涉及的变量与参数如表4-10所示。

 

表4-10RadioBox控件属性的获取

属性

参数

输入参数

输出参数

变量

数值

变量

数值

Value

intem_attr

item_id

UF_STYLER_VALUE

控件标识

Indicator

Count

Value.string

UF_STYLER_STRING_VALUE

1

被选中对象的值

Sensitive

intem_attr

item_id

UF_STYLER_SENSITIVITY

控件标识

Indicator

Count

Value.integer

UF_STYLER_INTEGER_VALUE

1

TURE为激活;FALSE为非激活

Visibility

intem_attr

item_id

UF_STYLER_VISIBILITY

控件标识

Indicator

Count

Value.integer

UF_STYLER_INTEGER_VALUE

1

TURE为可见;FALSE为非可见

ItemType

intem_attr

item_id

UF_STYLER_ITEM_TYPE

控件标识

Indicator

Count

Val

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1