Preventing floating of a toolbar
Brian Weeres -- bweeres@rescom.com Tuesday, March 11, 1997 Environment: Visual C++ 4.2b Windows NT 4.0 I have a toolbar which I programatically dock on the right side of a = CMDChildWnd by doing the following in OnCreateClient EnableDocking(CBRS_ALIGN_RIGHT); // add the toolbar m_wndActionBar.Create(this); m_wndActionBar.LoadToolBar(IDR_ACTIONBAR); m_wndActionBar.SetBarStyle(...); m_wndActionBar.EnableDocking(CBRS_ALIGN_RIGHT); DockControlBar(&m_wndActionBar,AFX_IDW_DOCKBAR_RIGHT); I'm probably missing something simple but I can't figure out how to = prevent someone from floating this toolbar. I want it to always remain = docked. ----------------------------------------------- Brian Weeres Rescom Ventures, Inc. bweeres@rescom.com
Hans Wedemeyer -- hansw@sprintmail.com Saturday, March 15, 1997 [Mini-digest: 3 responses] Brian, maybe a solution in mfc-l(7856) I copied the important part. regards Hans W from mfc-l 7856 >From: chakri@sunserv.cmc.stph.net >Sent: Tuesday, November 19, 1996 10:39 AM >To: mfc-l@netcom.com; Wayne Tang >Subject: [Q] Docking a dialog bar besides the Standard tool bar... >What I wanted was to dock the dialog bar just adj. to the std. tool >bar.I am not able to do so, until I explicitly do it thru the cmd. hdlr >as shown below ># Code begins >void CMainFrame::OnHelpTest() >{ > CRect rect; > m_wndToolBar.GetWindowRect(&rect); > CRect rect1; > CRect rect2; > m_tinDialogBar.GetWindowRect(&rect1); > long w =3D rect1.Width(); > long h =3D rect1.Height(); > rect2.top =3D rect.top; > rect2.left =3D rect.right; > rect2.right =3D rect2.left + w; > rect2.bottom =3D rect2.top + h; > DockControlBar(&m_tinDialogBar, > AFX_IDW_DOCKBAR_BOTTOM | AFX_IDW_DOCKBAR_TOP ,rect3); >} ># Code ends here Brian Weeres wrote: > > Environment: Visual C++ 4.2b Windows NT 4.0 > > I have a toolbar which I programatically dock on the right side of a CMDChildWnd by doing the following in OnCreateClient > > EnableDocking(CBRS_ALIGN_RIGHT); > // add the toolbar > m_wndActionBar.Create(this); > m_wndActionBar.LoadToolBar(IDR_ACTIONBAR); > m_wndActionBar.SetBarStyle(...); > m_wndActionBar.EnableDocking(CBRS_ALIGN_RIGHT); > DockControlBar(&m_wndActionBar,AFX_IDW_DOCKBAR_RIGHT); > > I'm probably missing something simple but I can't figure out how to prevent someone from floating this toolbar. I want it to always remain docked. > > ----------------------------------------------- > Brian Weeres > Rescom Ventures, Inc. > bweeres@rescom.com -----From: Ben BurnettBrian Weeres wrote: I have a toolbar which I programatically dock on the right side of a CMDChildWnd by doing the following in OnCreateClient Try setting the bar style to dock on the right and leave out the EnableDocking() call, that should solve it. Like this: m_wndActionBar.Create(this); m_wndActionBar.LoadToolBar(IDR_ACTIONBAR); m_wndActionBar.SetBarStyle(CBRS_ALIGN_RIGHT | ... ); -----From: "Chris McKillop" :From: Brian Weeres :To: 'mfc-l@netcom.com' :Subject: Preventing floating of a toolbar :Date: Tuesday, March 11, 1997 11:02 PM : :Environment: Visual C++ 4.2b Windows NT 4.0 : :I have a toolbar which I programatically dock on the right side of a CMDChildWnd by doing the :following in OnCreateClient : : EnableDocking(CBRS_ALIGN_RIGHT); : // add the toolbar : m_wndActionBar.Create(this); : m_wndActionBar.LoadToolBar(IDR_ACTIONBAR); : m_wndActionBar.SetBarStyle(...); : m_wndActionBar.EnableDocking(CBRS_ALIGN_RIGHT); : DockControlBar(&m_wndActionBar,AFX_IDW_DOCKBAR_RIGHT); : :I'm probably missing something simple but I can't figure out how to prevent someone from floating :Lthis toolbar. I want it :to always remain docked. This is really easy actually. Although I have only been using MFC for about a week now (and finding it really easy after having done a couple of years of SDK coding), I think this will work. Don't enable docking. :) You might also want to try using CBRS_SIZE_FIXED in the toolbar setting, but if you don't enable docking, I don't think that this is needed either. Some code that I am using at the moment looks like this.... // // Create Play/Pause Toolbar // m_toolbar.Create( this, WS_CHILD | WS_VISIBLE | CBRS_BOTTOM | CBRS_SIZE_FIXED | CBRS_FLYBY ); m_toolbar.LoadToolBar( IDR_TOOLBAR1 ); Where IDR_TOOLBAR1 is a toolbar resource. It also gives me the funky flyby status bar messages (if you setup the statusbar correctly). I think if you actually use the Wizard things in VC++ (I cannot stand the code they output, plus it breaks with my company's internal coding standards), some of those window styles are default. This code will create a toolbar at the bottom of "this" that cannot be torn off from "this". Hope this helps... Chris ------------------------------------------------ cdmckill@focus-systems.on.ca It's the end of the world as we know it, and I feel fine. - REM, "Document"
Become an MFC-L member | Вернуться в корень Архива |