《《PB程序设计》第3章窗口与控件.ppt》由会员分享,可在线阅读,更多相关《《PB程序设计》第3章窗口与控件.ppt(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第3章 窗口与控件3.1窗口及控件在应用中的地位和作用窗口及控件在应用中的地位和作用3.2窗口的基础知识窗口的基础知识3.3窗口及窗口控件的使用窗口及窗口控件的使用3.4窗口及控件实例窗口及控件实例小结小结 返回总目录返回总目录3.1 窗口及控件在应用中的地位窗口及控件在应用中的地位和作用和作用窗口是Windows应用程序中最常见的也是最重要的界面元素之一,它是一种人机交互的界面。应用程序的主要操作都是在窗口上实现的。Windows操作系统下主要的人机交互功能都是由窗口完成的。窗口和控件均有自己的属性、事件和函数,通过设置它们的属性,为事件编写脚本,可以定制它们的外观和行为,实现应用程序的功能
2、。返回章目录返回章目录3.2 窗口的基础知识窗口的基础知识3.2.1 窗口画板窗口画板3.2.2 窗口属性窗口属性3.2.3 窗口事件窗口事件3.2.4 窗口类型窗口类型 返回章目录返回章目录3.2.1 窗口画板窗口画板窗口对象在窗口画板中进行编辑 返回本节返回本节录录保存当前窗口复制选中的内容打开当前窗口或控件的属性视图剪切选中的内容编写当前窗口或控件的脚本重做刚才的操作控件下拉工具栏撤消当前的操作把剪贴板中的内容粘贴到当前位置设置控件的Tab顺序预览窗口关闭窗口画板3.2.1 窗口画板窗口画板 返回本节返回本节录录选择所有内容注释脚本当前行取消当前行注释查找字符串查找下一处替换字符串编译窗
3、口粘贴函数粘贴SQL语句粘贴PowerBuilder语句粘贴全局变量粘贴共享变量粘贴窗口实例变量粘贴窗口的名字粘贴对象的名字粘贴参数3.2.1 窗口画板窗口画板 返回本节返回本节录录设置控件放在上一层设置控件放在下一层打开布局下拉工具栏设置控件的前景颜色设置控件的背景颜色打开边框下拉工具栏,设置控件的边框样式3.2.1 窗口画板窗口画板 返回本节返回本节录录用来输入和编辑控件的文本用来选择文本的字体字体用来设置字体的大小文本以粗体显示文本以斜体显示文本加下划线文本向左对齐文本居中对齐文本向右对齐3.2.2 窗口属性窗口属性 窗口的属性决定其显示风格。要设置窗口的属性,可按下述步骤进行:(1)右
4、击窗口背景的空白处,弹出菜单选择“Properties”,打开窗口的属性视图(2)选择属性视图的不同标签页,设置相应的属性窗口。属性视图共有4页:基本特征标签页(General)、滚动条标签页(Scroll)、工具栏标签页(Toolbar)、其他标签页(Other)。其中最重要的是基本特征标签页。返回本节返回本节录录3.2.2 窗口属性窗口属性1.General标签页 返回本节返回本节录录设置窗口标题一个字符串类型的属性,指定窗口的标签值设置与窗口关联的菜单3.2.2 窗口属性窗口属性2.Scroll标签页设置窗口的滚动条属性及其滚动速度 返回本节返回本节录录设置当用户单击垂直滚动条中的向上或
5、向下箭头时,向上或向下滚动的距离设置当用户单击水平滚动条中的向左或向右箭头时,向左或向右滚动的距离设置当用户单击水平滚动条时窗口滚动的列数设置当用户单击垂直滚动条时窗口滚动的行数3.2.2 窗口属性窗口属性3.Toolbar标签页 返回本节返回本节录录在工具栏浮动时使用3.2.2 窗口属性窗口属性4.Other标签页 返回本节返回本节录录3.2.3 窗口事件窗口事件PowerBuilder的窗口事件有许多种,下面列出了这些事件触发条件及意义。Activate事件:在激活(Active)窗口前触发。该事件发生后,窗口中第一个跳转次序号最小的对象首先得到焦点。如果窗口中没有这样的对象,则窗口本身得
6、到焦点。Clicked事件:用户单击窗口中空白区域时触发。Close事件:窗口被关闭时触发。触发该事件后,没有办法阻止窗口关闭操作,但可以在该事件脚本中处理关闭前的准备工作,如:数据库断开连接、关闭文件等。CloseQuery事件:在开始关闭窗口时,触发该事件。执行该事件的事件处理程序后,系统检查返回值,如果返回值为1,则窗口不被关闭,通常情况下紧随其后触发的Close事件不启动;如果返回值为0,则窗口被关闭。利用该事件的这种特性,程序能够根据当前状态提醒用户保存数据、询问用户是否真要关闭窗口。窗口被关闭时,同时关闭任何与之相关的子窗口和弹出窗口。返回本节返回本节录录3.2.3 窗口事件窗口事
7、件Deactivate事件:当窗口为不活动时触发。DoubleClicked事件:当双击窗口客户区中任何未被有效控件占用的部分时触发。DragEnter事件:当可拖放对象进入窗口客户区时触发。DragLeave事件:当可拖放对象离开窗口客户区时触发。DragWithin事件:当可拖放对象在窗口客户区中被拖动时触发。HotLinkAlarm事件:在动态数据交换(DDE)服务器应用发送了新的(修改后的)数据、且客户DDE应用程序已经接收到数据时触发。返回本节返回本节录录3.2.3 窗口事件窗口事件Key事件:当用户在键盘上按下一个键且插入点不在编辑区域(如单行编辑框、超文本框等)中时触发。Mous
8、eDown事件:当用户在窗口客户区中任何未被有效控件占用的部分按下鼠标左键时触发。MouseMove事件:当鼠标在窗口内移动时触发。MouseUp事件:当用户在窗口客户区中任何未被有效控件占用的部分放开鼠标左键时触发。Open事件:在窗口打开之后、显示之前触发,此时系统已经构造好了窗口的所有属性以及其上的所有控件。RbuttonDown事件:当用户在窗口客户区中任何未被有效控件占用的部分按下鼠标右键时触发。返回本节返回本节录录3.2.3 窗口事件窗口事件Resize事件:当窗口大小发生变化时触发,窗口被打开时也触发此事件。SystemKey事件:当插入点不在编辑框中且用户按下Alt或Alt+其
9、他键时触发。Timer事件:在调用Timer函数启动定时器、设定时间后触发。ToolbarMoved事件:当MDI窗口上的工具栏被移动时触发。返回本节返回本节录录3.2.3 窗口事件窗口事件这些事件的发生有着严格的顺序,在为窗口事件编写脚本时需要正确理解它们触发的前后顺序,以达到预期的功能。窗口事件发生的顺序为 OpenShowActivate窗口活动时的各种鼠标事件、键盘事件及其他事件DeactivateCloseQueryClose 返回本节返回本节录录3.2.4 窗口类型窗口类型PowerBuilder提供了6种类型的窗口:1.主窗口(Main)主窗口在应用程序中使用十分普遍。主窗口不依
10、赖其他窗口而存在,它可以覆盖其他窗口,也可以被其他窗口覆盖。2.弹出式窗口(Popup)弹出式窗口是在另外的窗口中打开的窗口,在大多数情况下,打开弹出式窗口的窗口也就是该弹出式窗口的父窗口。返回本节返回本节录录3.2.4 窗口类型窗口类型3.子窗口(Child)子窗口通常在主窗口或弹出式窗口中被打开,这些窗口也就成为子窗口的父窗口。4.响应式窗口(Response)响应式窗口用于向用户接收请求信息并得到用户的应答,它们总是在其他窗口(它的父窗口且非响应式窗口)中打开。5.MDI框架窗口(MDI Frame)MDI窗口是个框架窗口,可以在它的里面打开多个文档窗口(Sheet),并且可以任意切换和
11、移动这些文档窗口。返回本节返回本节录录3.3 窗口及窗口控件的使用窗口及窗口控件的使用3.3.1 窗口的创建及保存窗口的创建及保存3.3.2 窗口控件的使用窗口控件的使用3.3.3 常用的窗口控件常用的窗口控件 返回章目录返回章目录3.3.1 窗口的创建及保存窗口的创建及保存创建窗口的方法有两种:普通方式继承方式。1.普通方式创建一个新窗口的步骤如下:(1)选择“File.New”菜单项,或者单击PowerBuilder工具栏上的“New”按钮,打开“New”对话框 返回本节返回本节录录3.3.1 窗口的创建及保存窗口的创建及保存 返回本节返回本节录录选择“PB Object”标签页选中“Wi
12、ndow”图标在Target下拉列表框中选择要建立新窗口的目标。单击“OK”按钮。PowerBuilder打开窗口画板工作区设置窗口的属性,为窗口添加各种控件,编写事件的脚本。保存窗口3.3.1 窗口的创建及保存窗口的创建及保存 2.继承方式创建窗口面向对象编程的特点之一是对象具有继承性,PowerBuilder的窗口也具有继承性。使用继承方法建立一个后代窗口的步骤如下:(1)选择“File.Inherit”菜单项,或者单击PowerBuilder工具栏上的“Inherit”按钮,打开“Inherit from Object”对话框 返回本节返回本节录录3.3.1 窗口的创建及保存窗口的创建及
13、保存 返回本节返回本节录录选择“Windows”选择包含窗口的目标选择包含窗口的库3.3.1 窗口的创建及保存窗口的创建及保存(3)双击要建立后代窗口的祖先窗口名称,或者选择一个窗口后,单击“OK”按钮。(4)根据选择的窗口创建一个后代窗口,并在窗口画板内根据需要对后代窗口作适当的修改,然后以新文件名存盘。返回本节返回本节录录3.3.1 窗口的创建及保存窗口的创建及保存当使用继承的方法建立一个其他对象时,与以上步骤相同,不同之处在于要根据所要创建的对象类型在Object of Type下拉列表框中选择相应的类型。对于使用继承方式创建的窗口,用户可以根据需要进行如下操作:(1)改变窗口的属性。(
14、2)向后代窗口添加新控件和修改已存在控件。(3)调整窗口及其控件的大小和位置。(4)为窗口及其控件的事件建立新的脚本或定义窗口及其控件的用户事件。(5)引用祖先的函数、事件和结构。访问祖先的属性,例如实例变量(前提是属性的作用范围是Public或Protected类型的)。(6)扩展或者替换继承的脚本。(7)声明窗口的函数、结构、变量。(8)在后代的窗口中,不允许的操作是删除继承而来的控件。如果在后代窗口不需要某个继承而来的控件,可以在后代窗口把它Visible或Enabled属性设置为False。返回本节返回本节录录3.3.1 窗口的创建及保存窗口的创建及保存 3.保存窗口在制作窗口及窗口控
15、件的过程中要经常进行存盘操作。在第一次存盘操作时,系统会给出一些提示信息,具体的操作步骤如下:(1)选择“File.Save”菜单项,或者单击画板工具栏的“Save”按钮。(2)对于没保存过的窗口,PowerBuilder打开“Save Window”对话框 返回本节返回本节录录3.3.1 窗口的创建及保存窗口的创建及保存(3)在Windows文本框中输入窗口的名称。窗口的名称可以是40个字符以内的任何合法的PowerBuilder标识符。PowerBuilder对象的名字应该由两部分组成,前一部分标识该类对象,窗口一般用“w”开头,后一部分为指示该对象功能的有意义的名称。(4)在Commen
16、ts编辑框中输入对窗口的注释,说明窗口的用途,方便合作。(5)在Application Libraries列表中选择要保存窗口的库。(6)单击“OK”按钮,返回画板工作区。返回本节返回本节录录3.3.2 窗口控件的使用窗口控件的使用1.在窗口中插入控件(1)选择“Insert.Control”菜单项,或者单击画板工具栏中的控件下拉工具栏(2)在“Insert.Control”菜单项的级联菜单中选择要插入的控件名称菜单项,或者单击下拉工具栏中的控件按钮。(3)在窗口的布局视图中,单击要放置控件的位置。(4)插入控件后,可以调整它的大小和位置,设置它的各种属性以及为它的事件编写脚本。返回本节返回本
17、节录录3.3.2 窗口控件的使用窗口控件的使用2.控件的复制和删除复制控件的方法有两种:外观复制和完全复制。外观复制只复制控件的外观和属性,而控件的事件脚本不复制。具体操作是:(1)选择要复制的控件。(2)选择“Edit.Duplicate”菜单项或者按“Ctrl+T”键即可。返回本节返回本节录录3.3.2 窗口控件的使用窗口控件的使用完全复制时,控件的所有属性及其所有脚本都会被复制。具体操作基本同上相似,步骤如下:(1)选择要复制的控件。(2)选择“Edit.Copy”菜单项或者按“Ctrl+C”键,或者单击画板工具栏的“Copy”按钮。控件被复制到PowerBuilder剪贴板中。(3)如
18、果在同一窗口内复制控件,则选择“Edit.Paste”菜单项或者按“Ctrl+V”键,或者单击画板工具栏的“Paste”按钮;如果在不同的窗口间复制,则首先打开一个窗口并使其成为活动窗口,然后进行上述操作。(4)粘贴后就得到了该控件的一个拷贝。如果粘贴的控件与窗口内已存在的另一个控件同名,则PowerBuilder会把复制后的控件自动重新命名。(5)在复制控件时,PowerBuilder把控件粘贴到目标窗口的同一位置,因此如果在同一个窗口内复制控件,应该把复制后的控件移动到其他位置,任意更改复制后的控件,原来的控件不会受到影响。返回本节返回本节录录3.3.2 窗口控件的使用窗口控件的使用要删除
19、窗口中某一控件时,可以执行下面的某一项操作:(1)右击要删除的控件,在弹出式菜单中选择“Delete”菜单项。(2)选中要删除的控件,单击画板工具栏的“Cut”按钮。(3)选中要删除的控件,按Delete键。返回本节返回本节录录3.3.2 窗口控件的使用窗口控件的使用3.控件的布局选择控件可以在布局视图或控件列表视图内进行。选择控件可以分成以下几种情况:(1)选择单个控件:在窗口的布局视图上单击要选择的控件,或者在控件列表视图中单击控件的名字。(2)选择相邻的多个控件:在相邻控件某一角的窗口空白处按住鼠标左键,拖动鼠标,使它经过所要选择的控件,这时PowerBuilder会显示一个表示选择范围
20、的方框,当所有要选择的控件都在方框内时,释放鼠标左键。(3)选择不相邻的多个控件:可以单击某个控件,然后按住Ctrl键,再单击其他控件。(4)选择所有控件:可以选择“Edit.Select All”菜单项或按“Ctrl+A”键。返回本节返回本节录录3.3.2 窗口控件的使用窗口控件的使用4.设置控件的通用属性 标题(Text)属性 Visible属性 Enabled属性 快捷键 颜色属性 返回本节返回本节录录3.3.2 窗口控件的使用窗口控件的使用5.控件的命名每个控件都必须有一个名字,在PowerBuilder应用程序开发中,应该遵循一个统一的命名规范。把控件添加到窗口中时,PowerBui
21、lder会为每一个控件指定一个惟一的名字。该名字由两部分组成:前半部分是该控件的默认前缀,后半部分是一个14位的数字。返回本节返回本节录录3.3.2 窗口控件的使用窗口控件的使用6.设定控件的Tab顺序改变控件的Tab顺序的步骤如下:(1)选择“Format.Tab Order”菜单项,或者单击画板工具栏的“Tab Order”按钮(2)单击要改变的Tab值,或者按Tab键移动焦点到Tab值处,输入一个新的Tab值(取值范围为09999)。(3)重复上一步骤,直到所有控件的Tab值设置完毕。(4)再次选择“Format.Tab Order”菜单项或者单击“Tab Order”按钮,Tab顺序将
22、被保存下来。返回本节返回本节录录3.3.3 常用的窗口控件常用的窗口控件1.命令按钮(CommandButton)和图形按钮(PictureButton)返回本节返回本节录录3.3.3 常用的窗口控件常用的窗口控件2.静态文本(StaticText)与静态超链接(StaticHyperLink)返回本节返回本节录录3.3.3 常用的窗口控件常用的窗口控件3.单行编辑框(SingleLineEdit)和多行编辑框(Multi-LineEdit)返回本节返回本节录录3.3.3 常用的窗口控件常用的窗口控件4.单选按钮(RadioButton)与复选框(CheckBox)单选按钮的属性 返回本节返回
23、本节录录3.3.3 常用的窗口控件常用的窗口控件5.掩码编辑框(EditMask)及标签TAB(1)掩码编辑框 返回本节返回本节录录3.3.3 常用的窗口控件常用的窗口控件(2)标签TAB 为标签控件添加标签页 返回本节返回本节录录3.3.3 常用的窗口控件常用的窗口控件 标签控件的属性 返回本节返回本节录录3.3.3 常用的窗口控件常用的窗口控件 标签页的属性 返回本节返回本节录录3.3.3 常用的窗口控件常用的窗口控件 删除标签页与调整标签页的次序右击标签页,在弹出式菜单中选择“Delete”菜单项。默认情况下,PowerBuilder按插入标签页的先后顺序作为标签页的次序,可以根据需要调
24、整标签页的排列次序,操作方法是:(1)选择标签控件属性视图的“Page Order”标签页。(2)单击标签名称前面的按钮,按住鼠标左键不放,拖动该条目到新位置,释放鼠标按钮。返回本节返回本节录录3.3.3 常用的窗口控件常用的窗口控件 标签控件的事件 标签控件有一些特有的事件,如:RightDoubleClicked(在控件上右击时触发)事件、SelectionChanged(选择另一个标签页之时触发)事件、SelectionChanging(选择另一个标签之前触发)事件。返回本节返回本节录录3.3.3 常用的窗口控件常用的窗口控件 6.列表框(ListBox)及图片列表框(PictureLi
25、stBox)(1)列表框类控件的通用属性:DisableNoScroll:设置滚动条的行为。ExtendedSelect:允许用户同时选中多个项目,允许时可以按下Shift键后单击鼠标选中连续多项,或按下Ctrl键后单击选中不连续的多项,或拉出矩形框选中框内连续的多项。MultiSelect:允许用户同时选中多个项目,但只能通过鼠标单击来选择。AllowEdit:允许在编辑框中进行编辑。ShowList:使下拉列表框变为列表显示,失去下拉功能。Items:用于输入列表框中的项目。控件有Items属性页,在这一页输入其列表值,按Tab键输入下一行,可以对输入的列表项进行选择、删除、移动等操作。返
26、回本节返回本节录录3.3.3 常用的窗口控件常用的窗口控件(2)列表框的事件 列表框的常用事件包括:DoubleClicked(双击列表框时触发)事件、SelectionChanged(选中了列表框的某个项目时触发)事件。返回本节返回本节录录3.3.3 常用的窗口控件常用的窗口控件 7.进度条(HProgressBar.VProgressBar)与滚动条(HScrollBar.VScrollBar)(1)进度条的属性(2)进度条的事件 进度条的事件包括Clicked、DoubleClicked、Rbuttondown等,它们分别在单击、双击、右击进度条时触发。返回本节返回本节录录3.3.3 常
27、用的窗口控件常用的窗口控件(3)滚动条的属性 返回本节返回本节录录3.3.3 常用的窗口控件常用的窗口控件(4)滚动条的事件水平滚动条和垂直滚动条共有的事件有:Moved(单击或拖动滚动条的滑块时触发)事件、RbuttonDown(右击滚动条时触发)事件。水平滚动条的主要事件有:LineLeft(单击控件的左箭头按钮时触发)事件、LineRight(单击控件的右箭头按钮时触发)事件、PageLeft(单击滚动条的左边滑块时触发)事件、PageRight(单击滚动条的右边滑块时触发)事件。垂直滚动条也有类似的四个事件。返回本节返回本节录录3.4 窗口及控件实例窗口及控件实例例3.5 创建一个窗口
28、w control,此窗口用来控制颜色选择。首先向窗口添加控件,并更改它们的相应属性。返回章目录返回章目录3.4 窗口及控件实例窗口及控件实例 返回本节返回本节录录3.4 窗口及控件实例窗口及控件实例例3.6 最后,我们把例3.2到例3.5组合在一起。在本例中,使用了我们在前面介绍的大部分控件,只是展示一下如何使用这些常用控件。并以选项卡的形式完成的。实现的应用程序窗口外观如图339所示。返回本节返回本节录录3.4 窗口及控件实例窗口及控件实例 返回本节返回本节录录小小 结结本章介绍如何创建一个窗口、为窗口添加控件和为窗口及控件编程。在创建窗口时,要注意对窗口类型的选择,并能够掌握一些常用的窗口事件和函数。控件是Windows应用程序设计的基本概念,设计和使用控件也就成了应用程序设计的基本技术。PowerBuilder作为标准的面向对象的客户端开发工具,控件是其最常用的对象之一,因此,窗口设计工作量和难度最大的就是为窗口添加控件、布局控件以及为控件编写脚本。其核心是利用诸多属性决定控件的显示风格,利用函数和事件控制控件的功能和行为特征。返回章目录返回章目录