小弟想实现这样的界面效果:在一个SDI工程中,怎样一开始就把窗体里的多个(至少2个)ControlBar的大小固定死,使这些大小固定的ControlBar一起占满整个窗体,各个ControlBar不能重叠。哪位大哥给个示例我,我的邮箱[email protected] 谢谢!下面是我的界面:
|
| Tree ControlBar
Main ControlBar |_____________________
| Grid ControlBar
|
|
| Tree ControlBar
Main ControlBar |_____________________
| Grid ControlBar
|
{ ....................
if (!m_wndMainControlBar.Create(_T("Main ControlBar"), this, CSize(300, 400), TRUE , AFX_IDW_CONTROLBAR_FIRST + 33))
{
return -1;
// fail to create
}
m_wndMainControlBar.SetBarStyle(m_wndMainControlBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); m_wndMainControlBar.EnableDocking(CBRS_ALIGN_LEFT|CBRS_ALIGN_RIGHT); EnableDocking(CBRS_ALIGN_ANY);#ifdef _SCB_REPLACE_MINIFRAME
m_pFloatingFrameClass = RUNTIME_CLASS(C***FrameWnd);
#endif if (!m_TreeControlBar.Create(_T("Tree ControlBar"), this, CSize(300, 200), TRUE , AFX_IDW_CONTROLBAR_FIRST + 33))
{
return -1;
// fail to create
}
m_TreeControlBar.SetBarStyle(m_TreeControlBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); m_TreeControlBar.EnableDocking(CBRS_ALIGN_LEFT|CBRS_ALIGN_RIGHT); EnableDocking(CBRS_ALIGN_ANY);#ifdef _SCB_REPLACE_MINIFRAME
m_pFloatingFrameClass = RUNTIME_CLASS(C***FrameWnd);
#endif if (!m_GridControlBar.Create(_T("Grid ControlBar"), this, CSize(300, 200),TRUE , AFX_IDW_CONTROLBAR_FIRST + 33))
{
return -1;
// fail to create
}
m_GridControlBar.SetBarStyle(m_GridControlBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); m_GridControlBar.EnableDocking(CBRS_ALIGN_LEFT|CBRS_ALIGN_RIGHT); EnableDocking(CBRS_ALIGN_ANY);#ifdef _SCB_REPLACE_MINIFRAME
m_pFloatingFrameClass = RUNTIME_CLASS(C***FrameWnd);
#endif DockControlBar(&m_MainControlBar, AFX_IDW_DOCKBAR_LEFT);
DockControlBar(&m_TreeControlBar, AFX_IDW_DOCKBAR_RIGHT); RecalcLayout();
CRect rBar;
m_wndDirTreeBar.GetWindowRect(rBar);
rBar.OffsetRect(0, 1);
DockControlBar(&m_GridControlBar, AFX_IDW_DOCKBAR_RIGHT, rBar); return 0;
}
这个C***FrameWnd是不是各个子窗体?另外,到底有无必要把窗体分割成3部分?
#ifdef _SCB_REPLACE_MINIFRAME
m_pFloatingFrameClass = RUNTIME_CLASS(CSCBMiniDockFrameWnd);
#endifC***FrameWnd就是CSCBMiniDockFrameWnd,是你预定义的一种可停靠框架.3.如果你用ControlBar来做的话,就不用分割窗口,如果你把窗口进行分割,那你就不需要用ControlBar了.