關於 Rebar 控件

Rebar 控件可作為子視窗的容器。 它可以包含一或多個 帶,而且每個帶都可以有任何組合的移位夾列、位圖、文字捲標和一個子視窗。 應用程式會將子視窗,通常是另一個控件指派給 Rebar 控件範圍。 當您動態重新置放 Rebar 控件帶時,Rebar 控件會管理指派給該帶的子視窗大小和位置。 此外,應用程式可以指定帶的背景點陣圖,而 Rebar 控件將會在點陣圖上顯示帶狀線的子視窗。

下列螢幕快照顯示具有兩個波段的 Rebar 控件。 其中一個包含工具列,另一個包含下拉式方塊。 這兩個樂隊都有一個夾子,允許移動和重設大小。

screen shot of dialog box showing a rebar control with a band containing a toolbar and a band containing a combo box

注意

rebar 控件是在 4.70 版和更新版本的 Comctl32.dll 中實作。

 

Rebar 頻帶和子視窗

應用程式會使用RB_INSERTBANDRB_SETBANDINFO訊息來定義 rebar 波段的特性。 這些訊息接受 REBARBANDINFO 結構的位址做為 lParam 參數。 REBARBANDINFO 結構成員會定義指定波段的特性。 若要設定波段的特性,請設定 cbsize 成員,以位元組表示結構的大小。 然後設定 fMask 成員,以指出您的應用程式所填入的結構成員。

若要將子視窗指派給頻帶,請在 REBARBANDINFO 結構的 fMask 成員中包含 RBBIM_CHILD 旗標,然後將 hwndChild 成員設定為子視窗的句柄。 應用程式可以在 cxMinChild 和 cyMinChild 成員中設定子視窗的最小允許寬度和高度。

當 Rebar 控件終結時,它會終結指派給其內帶的任何子視窗。 若要防止控件終結指派給其頻帶的子視窗,請傳送RB_DELETEBAND訊息來移除帶狀,然後使用RB_SETPARENT訊息將父系重設為另一個視窗,再終結 Rebar 控件。

Rebar 控件用戶介面

除了使用RBBS_FIXEDSIZE樣式之外,所有 Rebar 控件區都可以重設大小。 若要調整或變更控件內的帶狀順序,請按下並拖曳帶的夾板列。 Rebar 控件會自動重設大小,並重新定位指派給其帶狀的子視窗。 此外,您可以按兩下帶狀文字來切換帶的大小,如果有的話。

Rebar 控件的影像清單

如果應用程式使用影像清單搭配 Rebar 控件,它必須先傳送 RB_SETBARINFO 訊息,才能將帶狀新增至控件。 此訊息接受 REBARINFO 結構的位址做為 lParam 參數。 傳送訊息之前,請先將 cbSize 成員設定為結構的大小,以位元組為單位,以準備 REBARINFO 結構。 然後,如果 Rebar 控件要在樂隊上顯示影像,請將 fMask 成員設定為 RBIM_IMAGELIST 旗標,並將影像清單句柄指派給 himl 成員。 如果 rebar 不會使用帶狀影像,請將 fMask 設定為零。

Rebar 控件訊息轉送

Rebar 控件會將所有 WM_NOTIFY 視窗訊息轉送至其父視窗。 此外,Rebar 控件會從指派給其頻帶的視窗轉送傳送給它的任何訊息,例如 WM_CHARTOITEMWM_COMMAND和其他訊息。