第六章窗口与控件
窗口是应用程序与用户交流的主要界面。用它可以显示系统的有关信息,响应用户的鼠标和键盘输入等等。在这一节中我们将利用PowerBuilder的应用模板功能来创建一个应用程序,利用这个程序来介绍窗口的有关概念和操作。
首先我们利用系统的应用模板功能创建一个应用程序:
单击FILE菜单的NEW菜单项,系统弹出SELECT NEW APPLICATION LIBRARY对话框,用来选择一个对象库,这里在D:\DATABASE目录下创建一个新的名为SAMPLE 的对象库,然后单击“保存”按钮,
在接下来的SAVE APPLICATION对话框中给新的应用对象同样起名为SAMPLE,然后单击OK按钮确定,
系统弹出对话框询问是否需要创建应用模板,这里选择“是”,接着系统就开始为我们生成一个多文档接口的应用程序,APPLICATION画板中显示的就是系统自动帮我们创建好的一些对象(图6-1)。从对象的图标可以看出这些对象都是窗口和菜单,接下来就以这里的窗口对象为例介绍窗口的有关概念和操作。
图6-1
6.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属性是一个字符串,这个字符串在一些需要的地方可能会被使用,比如在适当的时候把它显示在窗口的状态栏上作为提示帮助信息,这里就不输入了。
接着的若干个复选框分别用来设置窗口是否可见,有效,是否有控制菜单,最大、最小化按钮,是否可改变大小等等,其中灰的复选框表示对这种类型的窗口是不可用的。