Суть проблемы: при создании тулбара, как дочернего окна чужого окошка возникает проблема с тем, что он затирает уже существующие тулбары. Вот функции по созданию и добавлению тулбара в ребар. Что не так?
HWND CreateSimpleToolbar(HWND hWndParent, int Tbar)
{
if (hWndParent == NULL) return NULL;
HWND hWndToolbar = CreateWindowEx(0, TOOLBARCLASSNAME, NULL,
WS_CHILD | TBSTYLE_WRAPABLE,
0, 50, 0, 0,
hWndParent, NULL, NULL, NULL);
if (hWndToolbar == NULL)
{
return NULL;
}
else
{
SetWindowPos(hWndToolbar, HWND_BOTTOM, 0,0,0,0, SWP_NOOWNERZORDER);
SendMessage(hWndToolbar, TB_AUTOSIZE, 0, 0);
Tbar = 1;
return hWndToolbar;
}
}
//-------------------------------------
BOOL InsertToolbar(HWND hwndParent, HWND hwndToolbar)
{
if ((hwndParent == NULL) || (hwndToolbar == NULL))
return FALSE;
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_GRIPPERALWAYS | RBBS_BREAK; // RBBS_CHILDEDGE
DWORD dwBtnSize = SendMessage(hwndToolbar, TB_GETBUTTONSIZE, 0, 0);
rbBand.lpText = TEXT("Tool");
rbBand.hwndChild = hwndToolbar;
rbBand.cyChild = LOWORD(dwBtnSize);
rbBand.cxMinChild = 3 * HIWORD(dwBtnSize);
rbBand.cyMinChild = LOWORD(dwBtnSize);
rbBand.cx = 40;
ATOM a = 0;
if (!CHECK)
{
a = SendMessage(hwndParent, RB_INSERTBAND, (WPARAM)-1, (LPARAM)&rbBand);
if (a != 0)
{
CHECK = TRUE;
ShowWindow(hwndToolbar, TRUE);
}
}
if (a == 0) return FALSE;
return TRUE;
}
...
if (TBar == 0 ) hwndTb = CreateSimpleToolbar(hRBW, TBar);
InsertToolbar(hRBW, hwndTb);
SendMessage(hRBW, WM_PAINT, 0, 0);
ShowWindow(hwndTb, TRUE);