让工具栏并列显示
假设在Windows程序窗口中有几个工具栏,现在我们希望让这些工具栏并列显示,该怎样实现呢?在这里,我们可以使用下面的函数来实现该功能,此函数是从CJ60Lib函数库弄下来的。笔者在下面的程序中实现的功能是:让LeftOf工具栏显示在Bar工具栏的左侧,同时还要并列显示在一起。下面就是在VC++中实现其功能的主要代码:
void CCJMDIFrameWnd::DockControlBarLeftOf(CControlBar*Bar,,
CControlBar*LeftOf)
{
CRect rect;
DWORD dw;
UINT n;
//使用MFC来调整所有工具栏的尺寸
//确保GetWindowRec准确
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;
DockControlBar(Bar,n,&rect);
}