跳转到内容

Futurebasic/语言/参考/外观窗口

来自维基教科书,开放的书籍,用于开放的世界

外观窗口

[编辑 | 编辑源代码]

✔ 外观 χ 标准 χ 控制台

appearance window [#][-] id&[, [title$][, [rect][, ¬
                  [windowClass][, [windowAttributes] [, [FBAttributes]]]]]]

2002 年 2 月(第 6 版)

使用此语句执行以下操作

  • 创建新屏幕窗口;
  • 激活(突出显示并置于最前面)现有窗口;
  • 使现有窗口可见或不可见;
  • 更改现有窗口的标题或矩形。

appearance window 语句紧随其后的是旧的 window 语句,但主要用于创建窗口。您可以随意将 window 函数和 window 语句与通过 appearance window 语句创建的窗口混合使用。例如,在使用 appearance window 语句创建窗口后,您可以使用 window( _width )window( _height ) 函数确定其大小。

您可能注意到,大多数现代应用程序中的窗口都有一个与白色不同的背景。这不是通过图形命令绘制到窗口中实现的。它是通过对 _主题管理器_ 的简单调用实现的。以下行在许多程序中将很有用。

def SetWindowBackground( _kThemeActiveDialogBackgroundBrush, _zTrue )
<img src="a/appearancewindow01.gif" alt="" height="98" width="311">
<img src="a/appearancewindow02.gif" alt="" height="98" width="312">

带有和不带有主题背景的窗口

appearance window 的参数应按以下方式指定。它们根据您是创建新窗口还是更改现有窗口而略有不同地解释。

  • id - 一个正或负整数,其绝对值在 1 到 2147483647 之间。
  • title$ - 一个字符串表达式。
  • rect - 全局屏幕坐标中的矩形。您可以使用以下两种形式之一来表示它
    (x1,y1)-(x2,y2) 两个对角相对的角点。
    @rectAddr& 指向 8 字节结构(例如 Rect 类型)的 long 整型表达式或 pointer 变量
  • windowClass - 一个无符号长整数,指定 Macintosh 窗口类。它与 FB 的标准运行时用户定义类不同。它更接近于窗口将驻留的层。要创建 windowClass 变量,请使用以下语法
    dim wc as WindowClass
    

    windowClass 表格介绍了一些对那些不熟悉 OS X 的人来说可能不熟悉的术语。

    <img src="a/appearancewindow03.gif" alt="" height="67" width="237">

    带工具栏的窗口

    一个片状窗口附加到一个父窗口。它从父窗口的标题栏向下延伸,用于强制做出与父窗口相关的决定。

    <img src="a/appearancewindow04.gif" alt="" height="159" width="197">
    片状窗口
    windowClass
    描述
    _kAlertWindowClass
    1
    我现在需要您的注意。
    _kMovableAlertWindowClass
    2
    我现在需要您的注意,但我足够好心地让您切换出此应用程序以进行其他操作
    _kModalWindowClass
    3
    系统模态,不可拖动
    _kMovableModalWindowClass
    4
    应用程序模态,可拖动
    _kFloatingWindowClass
    5
    浮动在所有其他应用程序窗口之上。在 OS 8.6 或更高版本中可用
    _kDocumentWindowClass
    6
    文档窗口
    _kDesktopWindowClass
    7
    桌面
    _kHelpWindowClass
    10
    帮助窗口
    _kSheetWindowClass
    11
    片状窗口
    _kToolbarWindowClass
    12
    浮动在文档之上,位于浮动窗口之下
    _kPlainWindowClass
    13
    普通
    _kOverlayWindowClass
    14
    覆盖层
    _kSheetAlertWindowClass
    15
    片状警报
    _kAltPlainWindowClass
    16
    普通警报

  • FBAttributes - 此长整数设置运行时使用的处理程序。标准 BASIC 运行时中使用的一些功能不会为外观运行时延续。例如,_noAutoClip 不使用,因为外观中不存在 autoclip 这种东西。
    常量 FB 属性
    _updateVisRgn 2048 此属性会影响当 FutureBASIC 使用 _wndRefresh 事件调用您的对话框事件处理例程时窗口的剪切区域将如何设置。如果您指定此属性,剪切区域将仅设置为包含实际需要刷新的窗口部分(剪切区域将在例程退出时重置为其先前值)。如果您省略此属性,剪切区域将设置为包含整个窗口(可能排除控件、编辑字段等)。
    _clickThru 4096 此属性会影响您的程序响应 _wndClick 事件激活窗口时发生的事情。如果设置了 _clickThru 属性,则激活点击将“传递”到窗口;这可能会导致其他事件(例如 _btnClick_efClick)生成,具体取决于点击的内容。如果您省略此属性,则需要两次单独的点击才能激活窗口并与其中内容进行交互。
    _noAutoFocus 32768 使用此属性来防止 Tab 键在编辑字段中前进键盘焦点
    _keepInactive 65536 此属性确保窗口永远不会被激活。窗口中的控件将无法正常工作。如果您在程序控制下将窗口置于最前面(WINDOW 语句),它将正常运行。这种类型的窗口旨在用作背景。

创建新屏幕窗口

[编辑 | 编辑源代码]
  • 指定一个 id 值,使得 abs( id ) 不同于任何现有窗口的 ID 号。将创建一个新窗口,并为其分配一个 ABS(id) 的 ID 号。您可以在以后使用窗口的 ID 号来识别其他 FB 语句和函数中的窗口。如果 id 为负数,则窗口将不可见地创建;如果您将要创建包含控件、编辑字段和图形的窗口,但这些控件、编辑字段和图形可能需要很长时间才能构建,则有时不可见地创建窗口会很有用。您可以再次使用 window 语句使不可见的窗口可见(见下文)。当您创建一个新窗口时,它将成为当前输出窗口。如果您将其可见地创建(并且您没有指定 _keepInBack 属性),它也将成为当前活动窗口。
  • title$ 将一个字符串分配给窗口的标题栏(如果窗口有标题栏)。如果您省略此参数,则将创建没有标题的窗口。
  • rect 指定窗口内容矩形的初始大小和位置。请注意,rect 不包括窗口的框架。如果您在 rect 中指定 (0,0) 的左上角坐标,则此参数将以特殊方式解释;在这种情况下,窗口将居中于屏幕,其宽度和高度由 rect 的右坐标和下坐标确定。请注意,这种特殊解释仅适用于创建新窗口时。如果您省略此参数,将创建一个“默认”大小和位置的窗口。
  • windowClass 指定窗口将驻留的层。
  • windowAttributes 指定窗口将包含的窗口小部件类型(关闭框、增长框)。
  • FBAttributes 指定运行时处理参数,这些参数决定窗口的行为方式。

无特殊注释。

另请参阅

[编辑 | 编辑源代码]

def TransitionRect def WindowCategory MinWindow MaxWindow SetZoom get window window close window output window function dialog function

语言参考

华夏公益教科书