Docking Toolbars Side-By-Side
Posted
by Kirk Stowell
on December 21st, 1998
If you are interested in more articles written by Kirk Stowell, you can click here to visit his home page.

There are several articles about docking toolbars, however, I felt that this was important enough to mention here. The same information can be found at Microsofts MSDN site, here it is in a nutshell:
Add the following method to your CMainFrame class:
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);
}
Now, in your CMainFrame::OnCreate, instead of using DockControlBar, use DockControlBarLeftOf:
m_wndToolBar1.EnableDocking(CBRS_ALIGN_ANY); m_wndToolBar2.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndToolBar1); DockControlBarLeftOf(&m_wndToolBar2,&m_wndToolBar1);This will dock m_wndToolBar2 left of m_wndToolBar1.
Download demo project - (29 KB)
Last updated December 21, 1998

Comments
Docking side by side in the mdi child?
Posted by rioch on 06/22/2009 11:01amI cannot get this to work for the mdichild frame. Is it possible to get the toolbars side by side there as well?
ReplyDocking toolbars in more than one row
Posted by Laurs on 06/10/2005 08:48amIt looks that MFC has problems when you try to drag toolbars to posaition them after each other, when there is more than one row. Has anybody a solution?
Replyhttp://www.bcgsoft.com
Posted by Legacy on 08/29/2003 12:00amOriginally posted by: The Best GUI Tools - VS.NET and Office XP/2003 Look!
http://www.bcgsoft.com
Reply
Wonderful!
Posted by Legacy on 07/18/2003 12:00amOriginally posted by: HS
Just what I was looking for!!
Reply
Thanks A Lot
Posted by Legacy on 06/29/2003 12:00amOriginally posted by: Snakebyte
I spent more than an hour looking for some toolbar property/method which could do the same In MSDN
This is exactly what I wanted to do.
ReplyThanks a lot
TreeCtrl intoa a dockable Toolbar?
Posted by Legacy on 02/11/2003 12:00amOriginally posted by: Manuel
How can I get into a ToolBar (dockable and resizable) a TreeCtrl
ReplyHow to dock a toolbar at right side?
Posted by Legacy on 12/23/2002 12:00amOriginally posted by: xianbin zheng
When create a toolbar and dock at top or bottom, it will align at left defaultly. But what can I do to dock it align right.
ReplyHow about three and more toolbars???
Posted by Legacy on 06/05/2002 12:00amOriginally posted by: writeus
While I add three toolbars,It's work wrong!!
How can I do???
Help!!!
ReplyPerfect ! ! !
Posted by Legacy on 04/24/2002 12:00amOriginally posted by: Johnn J
Just what i was looking for!
ReplyThat seems be good !
Posted by Legacy on 03/28/2002 12:00amOriginally posted by: BBBKOM
You are so creative!
ReplyLoading, Please Wait ...