跳转至内容

Futurebasic/语言/参考/def embedbutton

来自维基教科书,自由的教学资源

DEF EMBEDBUTTON 语句

[编辑 | 编辑源代码]

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

华夏公益教科书