Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
An application creates a rebar control by calling the CreateWindowEx function, specifying REBARCLASSNAME as the window class. The application must first register the window class by calling the InitCommonControlsEx function, specifying the ICC_COOL_CLASSES bit in the accompanying INITCOMMONCONTROLSEX structure.
What you need to know
Technologies
Prerequisites
- C/C++
- Windows User Interface Programming
Instructions
Create a Rebar Control
The following example creates a rebar control with two bands—one that contains a combo box, and another one that contains a toolbar. (See the illustration in About Rebar Controls.) These controls are created separately, and are passed to the example function as parameters.
#define NUMBUTTONS 3
HWND CreateRebar(HWND hwndOwner, HWND hwndToolbar, HWND hwndCombo)
{
// Check parameters.
if ((hwndToolbar == NULL) || (hwndCombo == NULL))
{
return NULL;
}
// Initialize common controls.
INITCOMMONCONTROLSEX icex;
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
icex.dwICC = ICC_COOL_CLASSES | ICC_BAR_CLASSES;
InitCommonControlsEx(&icex);
// Create the rebar.
HWND hwndRebar = CreateWindowEx(WS_EX_TOOLWINDOW,
REBARCLASSNAME,
NULL,
WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
WS_CLIPCHILDREN | RBS_VARHEIGHT |
CCS_NODIVIDER | RBS_BANDBORDERS,
0,0,0,0,
hwndOwner,
NULL,
g_hInst, // global instance handle
NULL);
if(!hwndRebar)
{
return NULL;
}
// Initialize band info used by both bands.
REBARBANDINFO rbBand = { sizeof(REBARBANDINFO) };
rbBand.fMask =
RBBIM_STYLE // fStyle is valid.
| RBBIM_TEXT // lpText is valid.
| RBBIM_CHILD // hwndChild is valid.
| RBBIM_CHILDSIZE // child size members are valid.
| RBBIM_SIZE; // cx is valid
rbBand.fStyle = RBBS_CHILDEDGE | RBBS_GRIPPERALWAYS;
// Get the height of the toolbar.
DWORD dwBtnSize = (DWORD)SendMessage(hwndToolbar, TB_GETBUTTONSIZE, 0,0);
// Set values unique to the band with the toolbar.
rbBand.lpText = const_cast<LPWSTR>(L"");
rbBand.hwndChild = hwndToolbar;
rbBand.cyChild = LOWORD(dwBtnSize);
rbBand.cxMinChild = NUMBUTTONS * HIWORD(dwBtnSize);
rbBand.cyMinChild = LOWORD(dwBtnSize);
// The default width is the width of the buttons.
rbBand.cx = 0;
// Add the band that has the toolbar.
SendMessage(hwndRebar, RB_INSERTBAND, (WPARAM)-1, (LPARAM)&rbBand);
// Set values unique to the band with the combo box.
RECT rc;
GetWindowRect(hwndCombo, &rc);
rbBand.lpText = const_cast<LPWSTR>(L"Font");
rbBand.hwndChild = hwndCombo;
rbBand.cxMinChild = 0;
rbBand.cyMinChild = rc.bottom - rc.top;
// The default width should be set to some value wider than the text. The combo
// box itself will expand to fill the band.
rbBand.cx = 100;
// Add the band that has the combo box.
SendMessage(hwndRebar, RB_INSERTBAND, (WPARAM)-1, (LPARAM)&rbBand);
return (hwndRebar);
}
Related topics