2 Toolbars nebeneinander
-
Hallo, ich erstelle zwei Toolbars:
cToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | TBSTYLE_WRAPABLE | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC ); //| TBSTYLE_WRAPABLE
cToolBar.LoadToolBar(IDR_MAINTOOLBAR); // IDR_MAINTOOLBAR
cToolBar.ShowWindow(SW_SHOW);
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST,0);cToolBarBrowser.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | TBSTYLE_WRAPABLE | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC ); //| TBSTYLE_WRAPABLE
cToolBarBrowser.LoadToolBar(IDR_BROWSERTOOLBAR);
cToolBarBrowser.ShowWindow(SW_SHOW);
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST,0);wie bekomme ich die zweite Toolbar dazu nicht unter der ersten sondern neben derersten abzuhängen?
-
Dafür hatte ich mal eine schicke kleine Funktion bei Codeproject gefunden:
void CMainFrame::DockControlBarLeftOf(CToolBar* Bar, CToolBar* LeftOf) { CRect rect; DWORD dw; UINT n; // get MFC to adjust the dimensions of all docked ToolBars // so that GetWindowRect will be accurate RecalcLayout(TRUE); LeftOf->GetWindowRect(&rect); rect.OffsetRect(1,0); dw=LeftOf->GetBarStyle(); n = 0; n = (dw&CBRS_ALIGN_TOP) ? AFX_IDW_DOCKBAR_TOP : n; n = (dw&CBRS_ALIGN_BOTTOM && n==0) ? AFX_IDW_DOCKBAR_BOTTOM : n; n = (dw&CBRS_ALIGN_LEFT && n==0) ? AFX_IDW_DOCKBAR_LEFT : n; n = (dw&CBRS_ALIGN_RIGHT && n==0) ? AFX_IDW_DOCKBAR_RIGHT : n; // When we take the default parameters on rect, DockControlBar will dock // each Toolbar on a seperate line. By calculating a rectangle, we // are simulating a Toolbar being dragged to that location and docked. DockControlBar(Bar,n,&rect); }erklärt sich hoffentlich von selbst
-
Das Beispiel scheint mir nicht von einer Dialogfeldbasierenden Anwendung zu sein, schade.