跳轉到內容

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

語言參考

華夏公益教科書