Пользователь
Регистрация: 10.05.2017
Сообщений: 23
|
Не могу понять как поменять размер Rebar'a.
Здравствуйте.
Создал Rebar, добавил два ToolBar'a.
А как поменять размер Rebar'a под ширину окна, не могу понять.
Помогите пожалуйста.
Код:
case WM_CREATE:
{
hWndToolbar = CreateWindowEx(0, TOOLBARCLASSNAME, NULL,
WS_CHILD | TBSTYLE_WRAPABLE | CCS_NORESIZE | CCS_NOPARENTALIGN
| TBSTYLE_ALTDRAG | TBSTYLE_LIST | /*TBSTYLE_FLAT |*/ CCS_ADJUSTABLE
| TBSTYLE_TRANSPARENT | WS_VISIBLE | CCS_NODIVIDER, 0, 0, 0, 0,
Wnd, (HMENU)hWndToolbarID, HInstance, NULL);
SendMessage(hWndToolbar, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_DOUBLEBUFFER);
TBBUTTON tbButtons[] =
{
{ 0, lll, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE, { 0 }, 0, (INT_PTR)L"1" },
{ 0, 2, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE /*| TBSTYLE_SEP*/, { 0 }, 0, (INT_PTR)L"2" },
{ 0, 3, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE, { 0 }, 0, (INT_PTR)L"3" },
{ 0, 123, TBSTATE_ENABLED, TBSTYLE_SEP, { 0 }, 0, 0 },
{ 0, 4, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE /*| TBSTYLE_SEP*/, { 0 }, 0, (INT_PTR)L"4" }
};
// Add buttons.
SendMessage(hWndToolbar, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0);
SendMessage(hWndToolbar, TB_ADDBUTTONS, (WPARAM)5, (LPARAM)&tbButtons);
SendMessage(hWndToolbar, TB_AUTOSIZE, 0, 0);
hWndToolbarTop = CreateWindowEx(0, TOOLBARCLASSNAME, NULL,
WS_CHILD | TBSTYLE_WRAPABLE | CCS_NORESIZE | CCS_NOPARENTALIGN | TBSTYLE_ALTDRAG |
TBSTYLE_LIST | /*TBSTYLE_FLAT |*/ CCS_ADJUSTABLE | TBSTYLE_TRANSPARENT | WS_VISIBLE
| CCS_NODIVIDER, 0, 0, 0, 0,
Wnd, (HMENU)hWndToolbarTopID, HInstance, NULL);
SendMessage(hWndToolbarTop, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_DOUBLEBUFFER);
TBBUTTON tbButtonsTop[] =
{
{0, 5, TBSTATE_ENABLED | TBSTATE_WRAP, TBSTYLE_AUTOSIZE | TBSTYLE_CHECK, { 0 }, 0, (INT_PTR)L"5" },
{ 0, 6, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE | TBSTYLE_CHECK /*| TBSTYLE_SEP*/, { 0 }, 0, (INT_PTR)L"6" },
{0, 7, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE, { 0 }, 0, (INT_PTR)L"7" },
{ 0, 8, TBSTATE_ENABLED, TBSTYLE_BUTTON |TBSTYLE_AUTOSIZE, { 0 }, 0, (INT_PTR)L"8" },
{ 0, 9, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE /*| TBSTYLE_SEP*/, { 0 }, 0, (INT_PTR)L"9" },
{ 5, 10, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE /*| TBSTYLE_SEP*/, { 0 }, 0, (INT_PTR)L"11111111111111111111111111111111111" }
};
SendMessage(hWndToolbarTop, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0);
SendMessage(hWndToolbarTop, TB_ADDBUTTONS, (WPARAM)6, (LPARAM)&tbButtonsTop);
SendMessage(hWndToolbarTop, TB_AUTOSIZE, 0, 0);
rebar = CreateWindowEx(0, REBARCLASSNAME, 0,
WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | RBS_AUTOSIZE|
RBS_VARHEIGHT | CCS_NODIVIDER | RBS_BANDBORDERS,
0, 0, 0, 0, Wnd, 0, HInstance, 0);
REBARBANDINFO rbi[2] = { sizeof(REBARBANDINFO) };
rbi[0].cbSize = sizeof(REBARBANDINFO);
rbi[0].fMask = RBBIM_STYLE |
RBBIM_TEXT |
RBBIM_CHILD |
RBBIM_CHILDSIZE |
RBBIM_SIZE;
rbi[0].fStyle = RBBS_CHILDEDGE | RBBS_GRIPPERALWAYS | RBBS_USECHEVRON;
rbi[0].lpText = L"123";
rbi[0].cch = _tcslen(rbi[0].lpText);
LRESULT lrBtnSize = SendMessage(hWndToolbarTop, TB_GETBUTTONSIZE, 0, 0);
rbi[0].cyChild = 0;//MAKEPOINTS(lrBtnSize).y+100;
rbi[0].cxMinChild = 0;//MAKEPOINTS(lrBtnSize).x;
rbi[0].cyMinChild = MAKEPOINTS(lrBtnSize).y;
rbi[0].cxIdeal = 0;//MAKEPOINTS(lrBtnSize).x;
rbi[0].cx = /*0;//*/MAKEPOINTS(lrBtnSize).x;
rbi[0].hwndChild = hWndToolbarTop;
//rbi[0].hwndChild = hWndToolbar;
SendMessage(rebar, RB_INSERTBAND, WPARAM(-1), LPARAM(&rbi[0]));
rbi[1].cbSize = sizeof(REBARBANDINFO);
rbi[1].fMask = RBBIM_STYLE |
RBBIM_TEXT |
RBBIM_CHILD |
RBBIM_CHILDSIZE |
RBBIM_SIZE;
rbi[1].fStyle = RBBS_CHILDEDGE | RBBS_GRIPPERALWAYS | RBBS_USECHEVRON;
rbi[1].lpText = L"456";
rbi[1].cch = _tcslen(rbi[1].lpText);
LRESULT lrBtnSize2 = SendMessage(hWndToolbar, TB_GETBUTTONSIZE, 0, 0);
rbi[1].cyChild = 0;//MAKEPOINTS(lrBtnSize).y+100;
rbi[1].cxMinChild = 0;//MAKEPOINTS(lrBtnSize).x;
rbi[1].cyMinChild = MAKEPOINTS(lrBtnSize2).y;
rbi[1].cxIdeal = 0;//MAKEPOINTS(lrBtnSize).x;
rbi[1].cx = /*0;//*/MAKEPOINTS(lrBtnSize2).x;
// rbi[1].hwndChild = hWndToolbarTop;
rbi[1].hwndChild = hWndToolbar;
SendMessage(rebar, RB_INSERTBAND, WPARAM(-1), LPARAM(&rbi[1]));
return 0;
}
Последний раз редактировалось Maxim_St; 16.12.2017 в 19:46.
|