创建一个窗口并指定它的属性。
语法
DEFINE WINDOW WindowName1
FROM nRow1, nColumn1 TO nRow2, nColumn2
| AT nRow3, nColumn3 SIZE nRow4, nColumn4
[IN [WINDOW] WindowName2 | IN SCREEN | IN DESKTOP
[NAME ObjectName]
[FONT cFontName [, nFontSize]]
[STYLE cFontStyle]
[FOOTER cFooterText]
[TITLE cTitleText]
[HALFHEIGHT]
[DOUBLE | PANEL | NONE | SYSTEM | cBorderString]
[CLOSE | NOCLOSE]
[FLOAT | NOFLOAT]
[GROW | NOGROW]
[MDI | NOMDI]
[MINIMIZE | NOMINIMIZE]
[ZOOM | NOZOOM]
[ICON FILE FileName1]
[FILL cFillCharacter | FILL FILE FileName2]
[COLOR SCHEME nSchemeNumber
| COLOR ColorPairList]
参数
WindowName1
指定要创建的窗口的名称。在 Visual FoxPro 中窗口名长度可以达到 254 个字符。(早期 FoxPro 版本中为 10 个字符)。必须以字母或下划线开头而不能以数字开头。它们可以包含字母、数字和下划线的任意组合。
FROM nRow1, nColumn1 TO nRow2, nColumn2
在 Visual FoxPro 主窗口中指定用户自定义窗口的位置和大小。FROM
nRow1, nColumn1 指定用户自定义窗口左上角在 Visual FoxPro 主窗口中的位置。TO nRow2, nColumn2 指定用户自定义窗口的右下角在 Visual FoxPro 主窗口中的位置。
定义窗口时,坐标可以超出 Visual FoxPro 边框,窗口可以比 Visual FoxPro 主窗口更大。
在 Visual FoxPro、FoxPro for Windows 和 FoxPro for Macintosh 中,窗口的位置和大小由父窗口的字体决定。父窗口可以是另一个用户自定义窗口或 Visual FoxPro 主窗口。
AT nRow3, nColumn3 SIZE nRow4, nColumn4
指定一个用户自定义窗口的位置和大小。
AT nRow3, nColumn3 指定用户自定义窗口的左上角在 Visual FoxPro
主窗口中的位置,这个位置是由父窗口中当前字体决定的。因为 AT
子句在各方面都与 FROM 子句相同,所以这两个子句可以互换使用。
SIZE nRow4, nColumn4 以行和列为单位指定用户自定义窗口的大小,它确保以特定字体显示的文本能在创建的窗口中显示。
可以使用 FONT 和 STYLE 子句为用户自定义窗口指定字体和字形。如果为窗口指定了字体并包含了 SIZE 子句,那么窗口的大小就由窗口字体的高度和宽度决定。在 Visual FoxPro 和 FoxPro for Windows 中,如果没有为窗口指定字体,窗口的字体就是默认的系统 10 磅 FoxFont
字体。在 FoxPro for Macintosh 中使用 9 磅 Monaco 作为默认字体。
在 FoxPro for MS-DOS 中,AT 和 SIZE 子句还可以用来指定一个用户自定义窗口的位置和大小。因为 FoxPro for MS-DOS 只支持单一的字体,所以窗口的大小总是相同的。
IN [WINDOW] WindowName2
将一个用户自定义窗口放入父窗口。用户自定义窗口变成一个子窗口,它不能移到父窗口之外。如果父窗口移动,子窗口随之移动。
当子窗口放在父窗口中时,用 FROM 和 TO 子句或 AT 和 SIZE 子句指定的子窗口的坐标是相对于父窗口的,而不是相对于 Visual FoxPro
主窗口。
下面的示例创建一个父窗口 wParent,子窗口 wChild 放在父窗口中。
CLEAR
DEFINE WINDOW wParent ;
FROM 1, 1 TO 20, 30 ;
TITLE "Parent" && 父窗口。
ACTIVATE WINDOW wParent
DEFINE WINDOW wChild ;
FROM 1, 1 TO 20, 20 ;
TITLE "Child" ;
IN WINDOW wParent && 子窗口。
ACTIVATE WINDOW wChild
ACTIVATE SCREEN
WAIT WINDOW 'Press a key to clear the windows'
RELEASE WINDOW wParent, wChild
CLEAR
IN SCREEN
在 Visual FoxPro 主窗口中放置用户自定义窗口。如果省略 IN SCREEN
,默认情况下,用户自定义窗口放在 Visual FoxPro 主窗口中。
在 ACTIVATE WINDOW 中包含 IN WINDOW 子句,可以在另一个用户自定义窗口中放置窗口并忽略此 IN SCREEN 子句。
IN DESKTOP
在 Visual FoxPro 和 FoxPro for Windows 中,用户自定义窗口可以放在 Microsoft Windows 桌面上,但位于 Visual FoxPro 主窗口外。窗口的位置与 Windows 桌面和 Visual FoxPro 主窗口中的当前字体有关。
在 FoxPro for Macintosh 中,将用户自定义窗口放在 Macintosh 桌面上。
FoxPro 主窗口不能遮盖用户自定义窗口。
在 FoxPro for MS-DOS 中,用户自定义窗口放在 FoxPro 主窗口中。在 FoxPro for MS-DOS 中,IN DESKTOP 与 IN SCREEN 完全相同。
NAME ObjectName
为窗口创建一个对象引用,这允许您使用表单对象的面向对象属性对窗口进行操作。有关 Visual FoxPro 中面向对象程序设计的详细内容,请参阅《开发指南》第三章“面向对象程序设计”。可以为 NAME
子句创建的窗口指定表单对象属性。有关的详细内容,请参阅Form
对象主题。
FONT cFontName [, nFontSize]
为放在窗口中的文本指定字体。cFontName 指定字体名称,nFontSize 指定磅值。如果省略 nFontSize,就使用 10 磅字体。
例如,在 Visual FoxPro 和 FoxPro for Windows 中,此命令创建一个窗口,用 16 磅 Courier
字体显示定向到窗口中的输出信息:
DEFINE WINDOW wDisplayFont FROM 2,2 TO 12,22 FONT 'Courier', 16
如果省略 FONT 子句,就使用 10 磅 FoxFont 字体。
STYLE cFontStyle
为放置在窗口中的文本指定字形。cFontStyle 指定字形。如果省略了 STYLE 子句,就使用常规字形。
下表列出了字形和它们相应的字符。
字符 | 字形 |
B | 粗体 |
I | 斜体 |
N | 常规 |
Q | 不透明 |
- | 删除线 |
T | 透明 |
U | 下划线 |
可以组合多个字符指定字形。在 Visual FoxPro 中,下列命令指定粗斜体字形:
DEFINE WINDOW wDisplayStyle FROM 2, 2 TO 12, 22 STYLE 'BI'
DEFINE WINDOW wDisplayStyle FROM 2, 2 TO 12, 22 STYLE 'BI'
TITLE cTitleText
用 TITLE 子句加一个标题。cTitleText 指定标题文本,它显示在窗口底边的中央。如果标题比窗口宽,就截断它。
HALFHEIGHT
所创建的窗口具有对分标题栏。此参数提供了与 FoxPro 早期版本所建窗口的兼容性,使这些窗口能导入到 Visual FoxPro、FoxPro for Windows 和FoxPro for Macintosh 中。
当使用 DEFINE WINDOW 在 Visual FoxPro 中创建窗口时,除非包含 SYSTEM 关键字或包含 FONT 子句,否则会使用对分标题栏。
如果包含 HALFHEIGHT 关键字,则不管是否包含了 SYSTEM 或 FONT 子句,都会使用对分标题栏。
DOUBLE | PANEL | NONE | SYSTEM | cBorderString
为用户自定义窗口指定边框样式,默认的边框为一条单线。
参数 | 说明 |
DOUBLE | 指定窗口周围用双线边框 |
PANEL | 指定窗口周围用宽边框。 |
NONE | 彻底地隐藏边框。 |
SYSTEM | 指定用户自定义窗口,使其看上去像一个系统窗口,当包含某些其他子句(GROW,ZOOM 等)时,要在窗口的边框上设置适当的窗口控制。 |
cBorderString | 指定一个自定义边框。有关自定义边框的详细内容,请参阅SET BORDER。 |
在 Visual FoxPro 中,包含 DOUBLE 或自定义边框字符串可以创建带有 PANEL 边框的窗口。即使不包含 SYSTEM 窗口定义子句,包含 CLOSE、FLOAT、GROW 或MINIMIZE 子句也会在窗口中设置适当的控制。
CLOSE
允许使用键盘或界面关闭用户自定义窗口。关闭窗口是将它从 Visual FoxPro主窗口或用户自定义的父窗口中移去,并将它的定义从内存中删除。如果省略了 CLOSE 子句,就不能关闭窗口。
NOCLOSE
禁止关闭一个窗口。
FLOAT
允许您使用键盘或鼠标移动一个用户自定义窗口。如果省略了 FLOAT,不能移动窗口。MOVE WINDOW 也可用来移动一个窗口。
NOFLOAT
禁止移动一个用户自定义窗口
GROW
允许您使用键盘或鼠标调整用户自定义窗口的大小。如果省略 GROW,不能调整窗口大小,除非在程序或命令窗口中使用 SIZE WINDOW 命令。
NOGROW
禁止调整窗口的大小除非在程序或命令窗口中使用 SIZE WINDOW 命令。
MDI
创建一个适合 MDI 的用户自定义窗口。MDI(多文档界面)允许使用多文档窗口并决定它们的结构和行为。如果省略 MDI,您所创建的窗口就不适合MDI。
当一个适合 MDI 的窗口最大化时:
NOMDI
创建一个不适合 MDI 的窗口。
MINIMIZE
允许使用键盘或鼠标最小化一个用户自定义窗口。
NOMINIMIZE
禁止最小化一个窗口。
ZOOM
允许使用键盘或鼠标最大化一个用户自定义窗口。也可以将窗口复原到它原先的大小。
NOZOOM
禁止最大化一个窗口。
ICON FILE FileName
指定当窗口最小化时显示的图标。必须在 DEFINE WINDOW 中包含MINIMIZE 关键字。只能指定一个图标 (.ico) 文件,而不能指定一个位图(.bmp) 文件。
FILL FILE FileName2
为窗口指定壁纸(背景)。窗口由指定的 FileName2 平铺填充,需要指定它的位图文件。
COLOR SCHEME nSchemeNumber
为用户自定义窗口指定颜色。默认情况下,DEFINE WINDOW 创建的窗口的颜色由配色方案 1 控制。
COLOR ColorPairList
为用户自定义窗口指定颜色。有关颜色方案和颜色对的详细内容,请参阅稍前部分的“颜色概述”。
说明
DEFINE WINDOW 创建用户自定义窗口后,就可以用 ACTIVATE WINDOW 或 SHOW WINDOW 在 Visual FoxPro 主窗口中显示它们。可创建的用户自定义窗口的数量仅受可用内存和系统资源的限制。
被激活的窗口保存在 Visual FoxPro 主窗口中,直到执行 DEACTIVATE WINDOW 或 HIDE WINDOW 命令。DEACTIVATE WINDOW 和 HIDE WINDOW 命令从 Visual FoxPro 主窗口中移去窗口,但不从内存中删除窗口定义。可使用 ACTIVATE WINDOW 或 SHOW WINDOW 命令将窗口放会到 Visual FoxPro 主窗口中。
使用 CLEAR WINDOWS 或 RELEASE WINDOWS 从 Visual FoxPro 主窗口中移走窗口,并从内存中删除窗口定义。要重新显示已从内存中删除定义的窗口,必须用 DEFINE WINDOW 重新创建该窗口。