在网上看到一篇文章,关于窗口类型的介绍,在pB开发中应该很实用,PB是属于MDI,多文档接口编程,对于处理多种数据的处理相当的关键,处理的好坏直接影响程序的性能。
按照对消息响应的方式,窗口分为模式窗口和非模式窗口两大类。在模式窗口中的
操作没有完成之前,不能进入别的窗口进行其他操作。一般用于用户确认重要信
息,在继续其他操作之前必须做出反馈,如错误提示窗口。非模式窗口则不同,允
许同时打开多个,随时切换到任意一个中工作。最常见的非模式窗口例子是Excel
中的sheet。
要创建窗口,必须指明窗口的显示样式,如边框、是否显示控制按钮、是否能够浮
动等。PB提供六种预定义样式。它们是:
主窗口独立于其他窗口,可以调用其他窗口,被其他窗口覆盖,也可以覆盖其他窗
口。它包括控制菜单、控制按钮、显示区域。主窗口都有边框和标题栏,一般都允
许用户调节其大小。但是在主窗口中,工具条是不能显示的。在应用程序中,一般
首先打开的是Main类型的窗口,然后用主窗口调用其他的窗口,来共同完成特定的
任务。应用对象程序关闭时,这种类型的窗口不会自动关闭,除非用户亲自关闭。
所以,如果在一个应用中除了主操作窗口外的其他地方使用了Main类型的窗口,一
定在应用关闭之前关闭它们,否则会造成程序虽然结束,但还零星有几个窗口在运
行的有趣局面。
子窗口由其他窗口来调用,在应用中不能直接打开。它可以被其他窗口覆盖,但不
能覆盖其他的窗口。它通常没有最大、最小控制按钮,但开发人员也可以设置让它
拥有这些。子窗口不能拥有菜单,开发应用程序时一定要注意这点。可以调节子窗
口的大小,显示子窗口的边框。子窗口的大小、显示位置都是相对于它的父窗口而
言的。所谓父窗口,就是调用了子窗口的窗口。当父窗口最小化时,子窗口也相应
被最小化,子窗口的浮动范围只限于父窗口,也就是说,拖动子窗口是不会将其拖
出父窗口的。
Response窗口是模式窗口,在继续执行程序之前必须对其做出响应,否则程序无法
继续运行。一般用于处理特别重要的信息,如:让用户确认选择、提示当前的错误
信息、输入下步必需数据等。这种类型的窗口没有边框和最大最小按钮,不能改变
大小,但能够拖动它改变位置,它的位置是相对整个屏幕而言的。PB提供了预定义
的Response窗口,如messagebox。提示重要信息时,经常使用这种类型的窗口,要
避免业务处理类型的窗口使用这种类型。因为某些控件上可能会自动以信息窗口的
形式显示一些提示信息,当这样的控件是在Response类型的窗口上时,应用程序容
易导致用户计算机死机。
Popup窗口一般用来提供一些辅助信息。它和父窗口关系紧密,但可以浮动到父窗
口的外部。当父窗口最大或最小化时,它也相应的被最大或最小化,父窗口关闭
时,它也相应的自动关闭。也可以用鼠标调节其大小。Popup类型的窗口可以拥有
主窗口的所有组件。这四种类型的窗口特点如下表所示。
窗口类型 特点简短描述
Main可以覆盖其他窗口,也可以被其他窗口覆盖。可以最大、最小化,可以用鼠标
改变其大小。可以有边框,可以有菜单。常用于应用主操作窗口
Child可以被其他窗口覆盖,也可以覆盖其他窗口。可以最大、最小化,也可以用鼠标改变其大小,
父窗口最小或最大化时,Child类型的窗口也相应的被最大或最小化。可以有边框,但不能有菜单。位置是相对于其父窗口而言,用鼠标拖动其位置不能超过其父窗口的范围。常被其他窗口打开。
Response不能最大、最小化,没有边框,不能用鼠标改变其大小。在继续执行程序
之前,必须对这种类型的窗口做出响应。常用于显示非常重要的信息。
Popup可以最大或最小化,在对这种类型的窗口响应之前,可以操作其他窗口。不
随父窗口最大和最小化。可以拥有菜单、边框。常用于显示其他窗口的辅助信息。
另外,MDI框架和带有Micro Help的MDI框架在应用软件的开发过程中经常使用,并
且除了一般窗口的特性外还拥有自己的特点。