Futurebasic/語言/參考/def embedbutton
✔ 外觀 ✔ 標準 ✔ 控制檯
DEF EMBEDBUTTON(childButtonID&, parentButtonID&)
2002 年 2 月(版本 6)
外觀管理器可以在單個父按鈕(或超級控制元件)中嵌入多個按鈕(子控制元件)。事實上,按鈕可以嵌入到按鈕中,而按鈕又可以嵌入到其他按鈕中。其優勢是巨大的。舉個例子:每個視窗都有一個根控制元件。視窗中的所有按鈕都嵌入到這個根控制元件中,或者嵌入到它的子控制元件之一中。當視窗變為非活動狀態時,根控制元件被停用。透過這一條指令(由 FB 執行時實現),視窗中的所有其他控制元件都會自動被停用。
其多功能性擴充套件到諸如在選項卡控制元件中顯示或隱藏窗格,或在組中嵌入按鈕。
以下示例建立了一個單選按鈕組,並將各個按鈕嵌入到超級控制元件中。因此,您可以輪詢組按鈕以找出當前選中的哪個單選子控制元件。
影像 d/DEF%20EMBEDBUTTON02.gif
DIM r as rect
DIM pR as rect
DIM h as handle
DIM bRef as long
DIM err as OSErr
// 建立一個視窗
SETRECT(r,0,0,_btnWd_btnMargin_btnMargin,120)
APPEARANCE WINDOW 1,,@r
err = FN SETTHEMEWINDOWBACKGROUND( window( _wndPointer ),¬
_kThemeActiveDialogBackgroundBrush, _zTrue )
// 按鈕 #1 是父按鈕
// 請注意,父按鈕有足夠的空間,以便 // 它在其自己的矩形內容納所有嵌入的按鈕
SETRECT(r,_btnMargin,_btnMargin,¬
_btnMargin_btnWd,(_btnMargin_btnHt)*3)
APPEARANCE BUTTON bRef,_activeBtn,0,0,1,¬
"",@r,_kControlRadioGroupProc
bRef ++
SETRECT(r,_btnMargin,_btnMargin,_btnMargin_btnWd,¬
_btnMargin_btnHt)
APPEARANCE BUTTON bRef,_activeBtn,0,0,1,¬
"單選按鈕 1",@r,_kControlRadioButtonProc
DEF EMBEDBUTTON(bRef,1)
bRef ++ : offsetrect(r,0,_btnHt_btnMargin)
APPEARANCE BUTTON bRef,_activeBtn,0,0,1,¬
"單選按鈕 2",@r,_kControlRadioButtonProc
DEF EMBEDBUTTON(bRef,1)
bRef ++ : offsetrect(r,0,_btnHt_btnMargin)
APPEARANCE BUTTON bRef,_activeBtn,0,0,1,¬
"單選按鈕 3",@r,_kControlRadioButtonProc
DEF EMBEDBUTTON(bRef,1)
LOCAL FN handleDialog
DIM AS LONG action,reference
action = DIALOG(0)
reference = DIALOG(action)
LONG IF action = _btnclick
MOVETO(8,100)
PRINT "當前按鈕 ";button(1);
END IF
END FN
ON DIALOG FN handleDialog
DO
HANDLEEVENTS
UNTIL 0