这是新工作的第四天,按上级的要求开发一个便民小程序,就要用到标题中说的,这下可难到我啦,查了MSDN并没有发现类似把某个toolbar放在另一个的右边的函数,所以自己百度了一下,还好发现高人指出一条明路,我试了一下高人提供的方法,可行,特此共享出来。
源码作者说:很多大型应用程序中都存在这样的工具条,将多个工具条同时并列停靠在某窗口的某一条边上。对于这种停靠方法,利用上述工具条控制函数DockControlBar的lpRect参数,通过控制工具条的停靠矩形区域的方法可以实现
1:在MainFrm.h中增加如下成员函数定义
// 增加
public:
void DockControlBarLeftOf(CToolBar* bar, CToolBar* leftof);
2:在MainFrm.cpp中实现成员函数
void CMainFrame::DockControlBarLeftOf(CToolBar* bar, CToolBar* leftof)
{
//设置工具条并列停靠到同一条边上
CRect rect;
DWORD dw;
UINT n=0;
RecalcLayout(); //重新显示
leftof->GetWindowRect(rect);
rect.OffsetRect(1, 0);
dw=leftof->GetBarStyle();
n=(dw&CBRS_ALIGN_TOP)?AFX_IDW_DOCKBAR_TOP:n;
n=(dw&CBRS_ALIGN_BOTTOM&&n==0)?AFX_IDW_DOCKBAR_BOTTOM:n;