让工具栏并列显示

Author: 望月 Date: 2001年 43期

?牐牸偕柙赪indows程序窗口中有几个工具栏,现在我们希望让这些工具栏并列显示,该怎样实现呢?在这里,我们可以使用下面的函数来实现该功能,此函数是从CJ60Lib函数库弄下来的。笔者在下面的程序中实现的功能是:让LeftOf工具栏显示在Bar工具栏的左侧,同时还要并列显示在一起。下面就是在VC++中实现其功能的主要代码:
  ?牐爒oid CCJMDIFrameWnd::DockControlBarLeftOf(CControlBar*Bar,
  ?牐燙ControlBar*LeftOf)??
  ?牐爗??
  ?牐燙Rect rect;??
  ?牐燚WORD dw;??
  ?牐燯INT n;??
  ?牐?//使用MFC来调整所有工具栏的尺寸
  ?牐?//确保GetWindowRec准确
  ?牐燫ecalcLayout(TRUE);?牔?
  ?牐燣eftOf->GetWindowRect(&rect);?牔?
  ?牐爎ect.OffsetRect(1,0);?牔?
  ?牐燿w=LeftOf->GetBarStyle();?煟牔?
  ?牐爊 = 0;??
  ?牐爊 =(dw&CBRS_ALIGN_
  ?牐燭OP)? AFX_IDW_DOCKBAR_TOP:n;??
  ?牐爊 =(dw&CBRS_ALIGN_
  ?牐燘OTTOM&&n==0)? AFX_IDW_DOCKBAR_BOTTOM:n;??
  ?牐爊 = (dw&CBRS_ALIGN_
  ?牐燣EFT &&n==0)? AFX_IDW_DOCKBAR_LEFT:n;??
  ?牐爊 =(dw&CBRS_ALIGN_RIGHT&& n==0)? AFX_IDW_DOCKBAR_RIGHT
  ?牐?:n;??
  ?牐燚ockControlBar(Bar,n,&rect);?牔?
  ?牐爙??
  ?牐?