PB教程第六章窗口与控件
- 格式:docx
- 大小:23.02 KB
- 文档页数:5
第六章窗口与控件窗口是应用程序与用户交流的主要界面。
用它可以显示系统的有关信息,响应用户的鼠标和键盘输入等等。
在这一节中我们将利用PowerBuilder的应用模板功能来创建一个应用程序,利用这个程序来介绍窗口的有关概念和操作。
首先我们利用系统的应用模板功能创建一个应用程序:单击FILE菜单的NEW菜单项,系统弹出SELECT NEW APPLICATION LIBRARY对话框,用来选择一个对象库,这里在D:\DATABASE目录下创建一个新的名为SAMPLE 的对象库,然后单击“保存”按钮,在接下来的SAVE APPLICATION对话框中给新的应用对象同样起名为SAMPLE,然后单击OK按钮确定,系统弹出对话框询问是否需要创建应用模板,这里选择“是”,接着系统就开始为我们生成一个多文档接口的应用程序,APPLICATION画板中显示的就是系统自动帮我们创建好的一些对象(图6-1)。
从对象的图标可以看出这些对象都是窗口和菜单,接下来就以这里的窗口对象为例介绍窗口的有关概念和操作。
图6-16.1 窗口的类型6.2 窗口的常用操作6.3 控件6.1 窗口的类型PowerBuilder提供了六种不同类型的窗口,它们的用途各不相同,下面分别说明:第一种要介绍的是MAIN类型的窗口,它的特点是可以不依赖于任何其它的窗口,可以独立地存在,一个应用程序中可以有多个MAIN窗口,你可以在需要的时候在程序中用OPEN函数打开其中的任意一个。
此外在MAIN窗口中可以放置需要的各种控件。
单击POWERBAR工具条上的WINDOW按钮,选中W-GENAPP-SHEET窗口后单击OK按钮确定所做的操作,然后在WINDOW画板中的窗口对象上单击鼠标右键,选中弹出的菜单的PROPERTIES菜单项,在弹出的WINDOW对话框中注意WINDOW TYPE一栏,可以发现W-GENAPP-SHEET窗口就是MAIN类型的,在其中就可以放入各种控件。
pb中窗口的打开和关闭pb中窗口的打开和关闭Close()功能关闭窗口并释放窗口以及窗口上的控件所占据的内存。
语法Close(windowname)参数windowname:要关闭窗口的名称返回值Integer。
函数执行成功时返回1,发生错误时返回-1。
如果参数windowname的值为NULL,Close()函数返回NULL。
用法应用程序使用Open()或其它Open簇函数打开窗口后,不需要窗口时,可以使用Close()关闭窗口并释放窗口以及窗口上所有控件占据的内存。
Close()函数的执行过程为:如果要关闭窗口的CloseQuery和/或Close事件已经编写了事件处理程序,那么执行这些事件处理程序,从屏幕上删除要关闭的窗口、关闭窗口、之后执行调用Close()函数语句后面的语句。
当窗口被关闭后,应用程序就不能再访问已经关闭窗口的属性、实例变量、对象函数、以及窗口上的控件了。
如果关闭窗口后应用程序依然访问上述特性,那么将引发运行错误。
当然,应用程序也可以阻止窗口被关闭,方法很简单,只要在欲阻止关闭窗口的CloseQuery事件处理程序中使用RETURN语句返回1即可,格式为:RETURN1 CloseWithReturn()功能关闭窗口并将返回值保存在Message对象中,该函数只能对响应窗口使用。
语法CloseWithReturn(windowname,returnvalue)参数windowname:要关闭窗口的名称returnvalue:指定关闭窗口时保存到Message对象中的值,调用CloseWithReturn()函数的代码段通过查看Message对象属性的值得到关闭窗口时被关闭窗口传递的值。
returnvalue参数必须是下述三种类型之一:String、Numeric、PowerObject返回值Integer。
函数执行成功时返回1,发生错误时返回-1。
如果参数任何的值为NULL,CloseWithReturn()函数返回NULL。
PB数据窗口教程数据窗口是PowerBuilder中最常用的控件之一、它用于显示数据库查询结果,并提供了对此结果进行浏览、修改和删除等操作的功能。
本教程将为您介绍如何在PowerBuilder中使用数据窗口控件。
第一步是创建一个数据窗口。
在PowerBuilder的“对象”菜单下,选择“新建”>“数据窗口”。
在弹出的对话框中,选择所需的数据源和表格,并点击“确定”按钮。
此时,将会出现一个空白的数据窗口设计器。
接下来,将需要显示在数据窗口中的列添加到数据窗口中。
您可以通过拖拽数据库字段或手动添加列的方式进行操作。
在设计器的左侧,您将看到一个“对象树”面板,在这里选择数据窗口对象,并右键单击以添加列。
完成列的设置后,您可以在设计器的页面中放置其他控件,以增强用户界面。
一些常用的控件包括文本框、复选框、下拉列表框等。
您可以通过拖拽控件到数据窗口设计器的页面中进行操作,并根据需要设置其属性。
下一步是设置数据窗口的数据源。
在数据窗口设计器的菜单栏中,选择“数据”>“设置数据源”选项。
在弹出的对话框中,选择所需的数据源和表格,并点击“确定”按钮。
此时,数据窗口将会显示数据源中的数据。
现在,您可以运行应用程序,并查看输出窗口中的结果。
您可以通过点击数据窗口中的列标题对数据进行排序,通过点击数据行进行选择,并通过单击“查阅”按钮在查询结果中进行导航。
如果需要,您还可以在数据窗口中进行增加、修改和删除操作。
通过本教程,您应该已经了解了如何在PowerBuilder中创建和使用数据窗口控件。
数据窗口是PowerBuilder开发中非常重要的一部分,掌握了数据窗口的使用方法,可以提升开发效率,并为用户提供更好的用户界面和交互体验。
希望本教程能对您有所帮助!。
Pb中数据窗口的应用在通常的Server/Client方式MIS开发中,总是有没完没了的报表需要制作,调试报表花费的时间也是最多而且乏味,还常常不能满足客户的要求。
要是能够让用户自己调整报表的格式和内容,然后将它保存下来,程序下次启动时它自动调用保存了的报表格式那有多好。
本人通过如下方法最终实现了用的要求。
PB(PowerBuilder)有一种以PSR结尾的特殊的保存报表的文件格式(本文简称作PSR文件)。
根据数据窗口可以直接读取PSR文件生成报表的原理,程序通过生成PSR文件,实现动态报表格式的保存。
一、实现原理:PB中的报表其实就相当于是数据窗口。
第一步,动态报表的实现。
通过设置数据窗口对象(dataobject)中文本、列等的Resizeable 和moveable属性为1来实现对象位置的拖动控制,通过数据窗口的Modify函数实现对象值的更改(包括增加和删除)。
第二步,报表格式的保存。
在一个应用当中,数据窗口对象的名称总是唯一的,将每一个数据窗口对象转化成PSR文件存于数据库表中。
在窗口打开时,程序先校验报表格式是否存在。
如果存在,先将报表格式读取出来放在一个临时文件当中,然后设置数据窗口(datawindow)的数据对象(dataobject)为这个报表文件,然后提取数据;如果不存在,直接提取数据即可。
二、实现过程:1、建立一个数据库表用以保存报表格式文件。
表名:dyn_reportDwobjectVarchar2(20)数据窗口对象名称Primary keyRptitleVarchar2(80)报表的标题名称MemoLong raw 报表格式2、建立一个窗口w_temp。
定义实例变量如下:string is_dwtype,is_dwobject //保存报表中对象的类型及名称控件名称控件含义Dw_print数据窗口对象Cb_exit退出按钮Cb_savereport 报表格式保存按钮3、在窗口的OPEN事件中加入如下代码, 校验报表格式是否存在,如果存在读取定义好的报表格式到数据窗口。
PB的数据窗口操作PB(PowerBuilder)是一种基于面向对象的集成开发环境(IDE),主要用于构建企业级应用程序。
在PB中,数据窗口是一项非常重要的功能,可以用于对数据的处理、展示和修改。
下面将从数据窗口的基本操作、高级特性和数据窗口设计原则等方面,详细介绍PB的数据窗口操作。
一、数据窗口的基本操作1. 创建数据窗口:在PB中,可以通过向导或手动创建数据窗口。
创建数据窗口是通过选择数据源(数据库表、视图或存储过程)、选择数据窗口类型(Grid、Tabular等)和设置窗口布局等步骤完成的。
2.数据绑定:在数据窗口中,可以通过数据绑定将数据源与数据窗口中的控件关联起来。
通过设置数据绑定属性,可以实现数据的读取、展示和修改等功能。
3.数据检索:使用数据窗口可以方便地进行数据检索。
通过设置查询条件、排序方式和数据过滤等属性,可以按照需求从数据库中检索数据,并在数据窗口中显示出来。
4.数据更新:除了展示数据,数据窗口还可以用于数据的更新。
通过设置数据窗口的更新属性,可以实现数据的插入、修改和删除等操作。
同时,PB还提供了事务管理和数据验证等功能,确保数据的完整性和一致性。
5.数据导航:在数据窗口中,可以轻松地实现数据的导航功能。
通过设置数据窗口的导航属性,可以方便地浏览数据,并进行上一条、下一条、第一页和最后一页等操作。
6.数据格式化:PB提供了丰富的数据格式化选项,可以对数据窗口中的数据进行格式化和显示。
例如,可以设置日期格式、货币格式和数值格式等,以便更好地展示和分析数据。
二、数据窗口的高级特性1.动态数据窗口:PB允许动态创建和操作数据窗口。
通过使用动态数据窗口,可以在运行时动态改变数据窗口的结构和属性。
这对于动态查询和灵活的数据展示非常有用。
2.嵌套数据窗口:PB支持嵌套数据窗口的使用。
通过将一个数据窗口嵌套在另一个数据窗口内部,可以实现复杂的数据关联和显示。
例如,可以在父数据窗口中显示子数据窗口的数据。
pb数据窗⼝设置操作1 使DataWindow列只能追加不能修改如何使DataWindow中的数据只能追加新记录⽽不能修改,利⽤ Column 的 Protect 属性可以很⽅便的做到这⼀点,⽅法如下:将每⼀列的 Protect 属性设置为:If( IsRowNew(), 0, 1) )在 PowerScript 中可以动态修改 Protect 属性:dw_1.Modify("column_name_here.Protect='1~tIf(IsRowNew(),0,1)'")这样,DataWindow 中只有新追加的记录可修改,⽽其他记录是只读的。
2 如何在DataWindow中实现列的⾃动折⾏我们在PowerBuilder应⽤程序的开发过程中, 使⽤DataWindow时, 经常会遇到某列的数据太长, 不能同时全部显⽰的情况. 若采⽤⾃动⽔平滚动, 操作起来⼜不够简便. 下⾯介绍⼀种⽅法, 实现列数据多⾏显⽰, 即实现列数据的⾃动折⾏.具体步骤如下:1) 在DataWindow Painter中打开此DataWindow.2) 在需设定⾃动折⾏的列上双击⿏标, 弹开此列的属性窗⼝.3) 选择Position标签, 选中Autosize Height 多选框.4) 选择Edit标签, 不选中Auto Horz Scroll多选框.5) 单击OK按钮, 保存所做的修改.6) 点中Detail Band (即写有Detail的灰⾊长带), 单击⿏标右键, 选择Properties... 菜单项.7) 选中Autosize Height多选框.8) 单击OK按钮, 保存所做的修改.9) 保存此DataWindow.注意:连在⼀起的汉字(中间没有标点或空格分隔), 系统将认为是⼀个单词, 不会⾃动进⾏折⾏.3 在数据窗⼝中实现动画要实现动画,必须要有定时器,在数据窗⼝中已经有了⼀个定时器,双击数据窗⼝将弹出的对话框,在Timer Interval中定义⼤于零的值就有定时器(可以精确到毫秒),有了这个定时器就可以实现动画了。
Composite 复合报表型的.就是可以由几个DW组合成的Crosstab 交叉报表型. 这个很少用.Freeform 自由风格,就是里面的列可以自已改变的. 常用Graph 统计图,你知道的Grid 网格,类似EXCEL的最常用Group 分组的.有分组小计要用的那种常用Label 标签的就是一个大格子一个大格子排列显示的那种N-Up 分栏显示的.这个少用.Tabular 列表的,这个列表不是太好用.这个也少用★SetTransObject语法:dwcontrol.SetTransObject ( transaction )功能:给数据窗口或者datastore控件dwcontrol设置事务对象transaction,缺省事务对象是SQLCA。
返回值:成功设置事务对象则返回1,执行过程中发生了错误则返回-1,有任意参数为Null时返回Null。
★Retrieve语法:dwcontrol.Retrieve ( {, argument, argument . . . } )功能:使用数据窗口控件的当前事务对象检索数据库中的数据。
如果数据窗口控件对应的数据窗口对象定义了检索参数,则应该在该函数中指定检索参数,参数的个数和数据窗口对象的检索变量个数相等,对应的数据类型相兼容。
返回值:返回数据窗口控件主缓存区(PrimaryBuffer)中的记录数,如果检索数据时发生错误则返回-1,如果任意参数为Null则返回Null*该函数的参数和数据窗口对象定义的参数的顺序要相同,类型要兼容。
个数不能少于数据窗口对象定义的参数,即可以等于和多于数据窗口对象定义的参数,多的参数忽略。
★DeleteRow语法:dwcontrol.DeleteRow ( row )功能:删除数据窗口dwcontrol中的第row行数据,如果row为0则表示删除当前行的数据。
返回值:执行成功则返回1,执行错误则返回-1,如果任意参数为Null则返回Null。
窗口与控件窗口与控件专题所涉及的范围比较广,如特殊功能控件的实现,友好漂亮界面的制作,这些都是PB程序员比较感兴趣的话题。
在PowerBuilder中,如果善于运用数据窗口与API技术,开发出的应用定将与众不同。
本章结合实例介绍如下专题:制作Splash窗口制作美观的状态条系统热键的实现创建图标栏应用MDI窗口显示背景图片定制有特色的图标按钮导航图界面的制作制作图文并茂的菜单窗口内控件大小与窗口大小同步动态创建控件控件融合技术窗口中控件显示ToolTips第章1PowerBuilder 8.0进阶篇·2·owerBuilder 编程离不开窗口与控件,从某种程度上可以说,现在的可视化编程无非就是将各种控件垒加到窗口中,再加上编写的一些代码,就构成了一个应用程序。
因此可以这么理解:窗口与控件是可视化编程的基础。
PowerBuilder 8.0提供了类型丰富的窗口及控件,灵活使用它们可以为应用开发提供极大的方便。
很多人认为,PowerBuilder 在界面制作方面功能不是很强,很难制作出Delphi 那样的漂亮界面。
其实只要肯思考,善于利用数据窗口及API 等技术,PowerBuilder 一样可以制作出美观、友好的用户界面。
本章将结合实例介绍在PowerBuilder 中如何制作Splash 启动窗口、美观的状态条、图文并茂的菜单以及如何使用系统热键、创建图标栏、用MDI 窗口显示背景图片、定制按钮、制作导航图界面、使窗口内控件大小与窗口大小同步、动态创建控件、使用控件融合、用窗口中控件显示ToolTips 等实用技术。
1.1 制作Splash 窗口现在很多商业软件如PowerBuilder 、Word 、金山词霸等都会在程序启动时呈现一个Splash 窗口,窗口上有软件名称、版本、图标等相关信息或“正在加载,请稍候…”等提示信息,该窗口显示一段时间后会自动关闭。
如果在自己开发的系统中启动时也加上一个Splash 窗口,虽然不会改善程序性能,但会使应用程序添色不少。
第六章窗口与控件窗口是应用程序与用户交流的主要界面。
用它可以显示系统的有关信息,响应用户的鼠标和键盘输入等等。
在这一节中我们将利用PowerBuilder的应用模板功能来创建一个应用程序,利用这个程序来介绍窗口的有关概念和操作。
首先我们利用系统的应用模板功能创建一个应用程序:单击FILE菜单的NEW菜单项,系统弹出SELECT NEW APPLICATION LIBRARY对话框,用来选择一个对象库,这里在D:\DATABASE目录下创建一个新的名为SAMPLE的对象库,然后单击“保存”按钮,在接下来的SAVE APPLICATION对话框中给新的应用对象同样起名为SAMPLE,然后单击OK 按钮确定,系统弹出对话框询问是否需要创建应用模板,这里选择“是”,接着系统就开始为我们生成一个多文档接口的应用程序,APPLICATION画板中显示的就是系统自动帮我们创建好的一些对象(图6-1)。
从对象的图标可以看出这些对象都是窗口和菜单,接下来就以这里的窗口对象为例介绍窗口的有关概念和操作。
图6-16.1 窗口的类型6.2 窗口的常用操作6.3 控件6.1 窗口的类型PowerBuilder提供了六种不同类型的窗口,它们的用途各不相同,下面分别说明:第一种要介绍的是MAIN类型的窗口,它的特点是可以不依赖于任何其它的窗口,可以独立地存在,一个应用程序中可以有多个MAIN窗口,你可以在需要的时候在程序中用OPEN函数打开其中的任意一个。
此外在MAIN窗口中可以放置需要的各种控件。
单击POWERBAR 工具条上的WINDOW按钮,选中W-GENAPP-SHEET窗口后单击OK按钮确定所做的操作,然后在WINDOW画板中的窗口对象上单击鼠标右键,选中弹出的菜单的PROPERTIES菜单项,在弹出的WINDOW对话框中注意WINDOW TYPE一栏,可以发现W-GENAPP-SHEET窗口就是MAIN类型的,在其中就可以放入各种控件。
第二种类型的窗口是POPUP类型,它的特点是通常都是从其它窗口的脚本中利用OPEN函数打开它,打开后这种类型的窗口自动成为含有打开脚本的窗口的子窗口。
POPUP类型的窗口可以显示在父窗口的外面,但不能被父窗口覆盖,当父窗口最小化或者关闭的时候,它也相应地最小化或者关闭。
第三种类型的窗口是CHILD类型,它的特点是通常都是从主窗口或者弹出式窗口的脚本中,利用OPEN函数打开它,它可以在父窗口中移动,但不能移出主窗口的工作区,而且当父窗口移动的时候,CHILD窗口也跟着移动。
第四种类型的窗口是RESPONSE类型,它是一种模式窗口,也就是说,当这种类型的窗口被打开之后,输入焦点就切换到这个窗口上,用户只有在对这个窗口进行操作并关闭这个窗口之后才可以使用程序中的其它窗口。
在刚才的SAMPLE应用程序中,W-GENAPP-ABOUT和W-GENAPP-TOOLBARS窗口就是RESPONSE类型的窗口。
第五种类型的窗口是MDI FRAME类型,它的特点是在这种类型的窗口中一般不放入控件,而是把这种类型的窗口作为其它类型的窗口的容器,利用这种类型的窗口就可以实现多文档的界面,在容器中的每一个窗口用来显示一个文档。
在我们这个程序中的W-GENAPP-FRAME 窗口就是一个MDI FRAME类型的窗口。
单击POWERBAR工具条上的RUN按钮运行应用程序,在运行的应用程序中单击工具条上的NEW按钮,然后选择WINDOW菜单上的TITLE VERTICAL 菜单项,可以看出主窗口的工作区中显示有几个窗口,这些窗口可以用来显示不同的文档(图6-2)图6-2第六种类型的窗口是MDI FRAME WITH MICROHELP,这种类型的窗口与上一种基本一样,唯一的区别在与这种窗口在工作区的下面带有一个状态条,利用这个状态条可以显示一些操作提示信息。
事实上刚才的窗口W-GENAPP-FRAME就是这种类型的。
6.2 窗口的常用操作接下来要介绍的是对窗口的一些基本属性的设置和修改操作。
单击POWERBAR工具条上的WINDOW按钮,在弹出的SELECT WINDOW对话框中选择NEW按钮,我们开始创建一个新的窗口并设置它的一些属性。
在新窗口上单击鼠标右键,选择弹出菜单的PROPERTIES菜单项,系统弹出WINDOW对话框用来设置窗口的各种属性(图6-3)。
图6-3首先看TITLE一栏,其中的内容被用作窗口的标题,系统已经设置了一个缺省的标题UNTITLED,这里把它修改为“THIS IS TITLE”,MENU NAME一栏用来输入窗口的菜单的名字,你可以通过单击BROWSE按钮来搜索一个已经存在的菜单对象作为这个窗口的菜单,一个窗口并不要求一定要有菜单。
这里的范例中选择M-GENAPP-FRAME。
接下来的TAG属性是一个字符串,这个字符串在一些需要的地方可能会被使用,比如在适当的时候把它显示在窗口的状态栏上作为提示帮助信息,这里就不输入了。
接着的若干个复选框分别用来设置窗口是否可见,有效,是否有控制菜单,最大、最小化按钮,是否可改变大小等等,其中灰色的复选框表示对这种类型的窗口是不可用的。
接下来的WINDOW TYPE用来选择窗口的类型,也就是刚才介绍的六种窗口中的一种。
WINDOW COLOR栏则是用来设置窗口的工作区的颜色。
最后的MDI CLIENT COLOR是用来设置多文档窗口的工作区的颜色,由于现在是MAIN类型的窗口,这一栏目前不可用。
接下来单击对话框中的POSITION标签,利用这个标签可以设置窗口的大小,在屏幕上的位置和初始显示状态,因为这几个选项都很容易理解,这里就不一一介绍了。
单击POINTER标签,这个标签的作用是用来设置显示在窗口中的鼠标的形状,系统列出了已有的若干中鼠标形状供我们选择使用,当然你也可以创建一个新的形状的鼠标,然后通过单击BROWSE按钮把它选为窗口鼠标,ICON标签用来设置窗口的图标,也就是窗口最小化时的代表窗口的图标,在窗口的左上角也有这个图标。
同样地我们可以选择一个系统的或者自己创建的图标。
自己创建的图标要求是16*16的,否则会显示不出来。
SCROLL标签用来用来设置窗口的滚动特性,在这里可以设定窗口是否具有滚动条,对话框上的四个编辑栏用来设置滚动条滚动的特性和幅度,也就是单击滚动条上的箭头或者其它地方的时候窗口每次滚动多大的距离。
左边的两个编辑栏用来设置水平滚动条的特性,UNITS PER LINE的值为0表示单击滚动条上的箭头时滚动窗口宽度的百分之一。
而COLUMNS PER PAGE值为0表示单击滚动条上的空白区域时每次滚动10列。
一般情况下我们不对窗口的这些缺省值进行修改。
TOOLBAR标签用来设置的工具条特性,这里可以设置工具条是否可见,工具条在窗口中的位置,要注意的是对于浮动方式的工具条,需要定义它的浮动特性,只有对有工具条的窗口才需要定义工具条的特性(图6-4)。
图6-4定义好了窗口的基本属性,当然很希望能马上了解窗口运行时的样子,单击PAINTERBAR 工具条上的PREVIEW按钮,就可以预览窗口的样子(图6-5),可以看出窗口的标题就是我们刚才定义的标题,窗口的菜单也是刚才选中的菜单,窗口的其它特性也是我们刚才所设置的。
关闭预览窗口,单击FILE菜单的SAVE菜单项,系统要求我们保存刚才创建的窗口,在SAVE WINDOW对话框中给窗口起名为MYWINDOW,然后单击OK按钮。
单击POWERBAR工具条上的RUN WINDOW按钮,系统弹出SELECT WINDOW对话框,在这个对话框中列出了当前所有的窗口对象,选择我们刚才创建的MYWINDOW窗口对象,然后单击START按钮,就可以实际运行这个窗口,从而了解窗口的动态特性。
图6-56.3 控件空白的窗口是没什么用的,用户在使用应用程序的时候打交道最多的就是窗口中的控件,接下来就介绍如何创建和使用控件。
单击POWERBAR工具条上的WINDOW按钮,在SELECT WINDOW对话框中选择系统自动创建的W-GENAPP-ABOUT窗口,然后单击OK按钮,选中的窗口就显示在窗口画板中(图6-6),这个窗口中有两个控件,上面的控件是一个静态文本框,这种控件的作用是在窗口中显示一些说明和提示信息。
控件上的文本可以利用脚本实现在程序运行时根据需要动态变化。
下面的控件是一个命令按钮,鼠标右击这个命令按钮,在弹出的菜单中选中SCRIPT菜单项,在弹出的窗口中可以看到系统已经为命令按钮的CLICK事件编写了脚本,脚本的作用是关闭命令按钮所在的窗口。
在大多数情况下我们需要处理的都是命令按钮的CLICK事件。
图6-6单击POWERBAR工具条上的WINDOW按钮,这次选择打开W-GENAPP-TOOLBARS窗口,可以看出这个窗口中也有两个命令按钮控件,窗口的左边是一个大的方框,称为GROUPBOX 控件,它是一个容器,放入容器中的控件就成为一组相关的控件,比如这里放在组合框控件中的是五个单选按钮控件,这五个单选按钮放在一个组合框中就表示它们只能选中其中的一个。
组合框一般就是用来放入一组相关的控件。
上面通过对系统利用应用模板创建的窗口中的控件的介绍,说明了静态文本框,命令按钮,组合框,单选按钮四个控件,接下来我们通过在刚创建的MYWINDOW窗口中放入控件来说明其它控件的概念和用途。
单击POWERBAR工具条上的WINDOW按钮,在打开的对话框中选择MYWINDOW窗口,然后单击OK打开它。
注意PAINTERBAR工具条上的工具条画板按钮,它是一个下拉按钮,单击按钮上的下拉箭头,屏幕上弹出的就是所有可用控件(图6-7),这里将只介绍常用的控件。
图6-7注意弹出方框中的PICTUREBUTTON控件,它与命令按钮在程序中的功能类似,唯一的区别是在这个控件上可以设置图片,我们选中这个控件,然后单击窗口中的某个地方,这个控件就放在了窗口中,鼠标右键单击这个控件,选中弹出菜单的PROPERTIES菜单项,弹出的对话框中很重要的两项ENABLED FILE NAME 和DISABLED FILE NAME就是用来设置PICTUREBUTTON控件在有效和无效时的图片,这里不妨单击BROWSE ENABLED按钮为ENABLED FILE NAME一栏选择一个图片(读者可自行选择一张后缀为.BMP的图片文件),选好后,点击TEXT 框,将里面的NONE文字删除,然后单击OK按钮,可以发现选中的图片就显示在了控件上。
再看弹出控件框中的CHECKBOX控件,这个控件的作用是用来表示开关状态或者三种状态中的一种,在窗口中放置一个CHECKBOX控件,然后用和前面类似的方法修改控件的属性,选中THREE STATE复选框,然后单击OK按钮,单击PAINTERBAR工具条上的SAVE按钮保存修改,然后选择MYWINDOW窗口运行它,单击窗口上的复选框,可以发现它有三种状态(黑色选中,灰色选中,未选中),我们可以利用这三种状态来设置和表示应用程序中的某个变量或者对象的当前状态。