Docking Toolbars Side-By-Side

.
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:01am

    I cannot get this to work for the mdichild frame. Is it possible to get the toolbars side by side there as well?

    Reply
  • Docking toolbars in more than one row

    Posted by Laurs on 06/10/2005 08:48am

    It 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?

    Reply
  • http://www.bcgsoft.com

    Posted by Legacy on 08/29/2003 12:00am

    Originally 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:00am

    Originally posted by: HS

    Just what I was looking for!!

    Reply
  • Thanks A Lot

    Posted by Legacy on 06/29/2003 12:00am

    Originally 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.
    Thanks a lot

    Reply
  • TreeCtrl intoa a dockable Toolbar?

    Posted by Legacy on 02/11/2003 12:00am

    Originally posted by: Manuel

    How can I get into a ToolBar (dockable and resizable) a TreeCtrl

    Reply
  • How to dock a toolbar at right side?

    Posted by Legacy on 12/23/2002 12:00am

    Originally 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.

    Reply
  • How about three and more toolbars???

    Posted by Legacy on 06/05/2002 12:00am

    Originally posted by: writeus

    While I add three toolbars,It's work wrong!!

    How can I do???

    Help!!!

    Reply
  • Perfect ! ! !

    Posted by Legacy on 04/24/2002 12:00am

    Originally posted by: Johnn J

    Just what i was looking for!

    Reply
  • That seems be good !

    Posted by Legacy on 03/28/2002 12:00am

    Originally posted by: BBBKOM

    You are so creative!

    Reply
  • Loading, Please Wait ...

  • You must have javascript enabled in order to post comments.

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • On-demand Event Event Date: September 10, 2014 Modern mobile applications connect systems-of-engagement (mobile apps) with systems-of-record (traditional IT) to deliver new and innovative business value. But the lifecycle for development of mobile apps is also new and different. Emerging trends in mobile development call for faster delivery of incremental features, coupled with feedback from the users of the app "in the wild." This loop of continuous delivery and continuous feedback is how the best mobile …

  • Java developers know that testing code changes can be a huge pain, and waiting for an application to redeploy after a code fix can take an eternity. Wouldn't it be great if you could see your code changes immediately, fine-tune, debug, explore and deploy code without waiting for ages? In this white paper, find out how that's possible with a Java plugin that drastically changes the way you develop, test and run Java applications. Discover the advantages of this plugin, and the changes you can expect to see …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds