Futurebasic/語言/參考/def embedbutton
✔ 外觀 ✔ 標準 ✔ 控制檯
DEF EMBEDBUTTON(childButtonID&, parentButtonID&)
2002 年 2 月(6.0 版)
外觀管理器可以將多個按鈕(子控制元件)嵌入單個父按鈕(或超級控制元件)中。實際上,按鈕可以嵌入到按鈕中,而按鈕又可以嵌入到其他按鈕中。這樣做的好處非常多。以這個例子為例:每個視窗都有一個根控制元件。視窗內的所有按鈕都嵌入到該根控制元件或其子控制元件之一中。當視窗變為非活動狀態時,根控制元件會被停用。透過該單一命令(由 FB 執行時實現),視窗內的所有其他控制元件都會自動被停用。
這種靈活性和顯示或隱藏選項卡控制元件中的窗格或組內的按鈕等功能相輔相成。
以下示例建立了一個單選按鈕組,並將單個按鈕嵌入到超級控制元件中。因此,您可以查詢組按鈕以瞭解當前選中的單選子控制元件。
image 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,¬
"Radio 1",@r,_kControlRadioButtonProc
DEF EMBEDBUTTON(bRef,1)
bRef ++ : offsetrect(r,0,_btnHt_btnMargin)
APPEARANCE BUTTON bRef,_activeBtn,0,0,1,¬
"Radio 2",@r,_kControlRadioButtonProc
DEF EMBEDBUTTON(bRef,1)
bRef ++ : offsetrect(r,0,_btnHt_btnMargin)
APPEARANCE BUTTON bRef,_activeBtn,0,0,1,¬
"Radio 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 "Current Button ";button(1);
END IF
END FN
ON DIALOG FN handleDialog
DO
HANDLEEVENTS
UNTIL 0