如何实现两个CoolBar停靠在同一行,并且从中间分开!在线等!

deeeq 2010-01-20 09:06:09
我想实现的界面为 |m_BottomCtrBar|m_BottomCtrBar1| 将下面从中间分开!

当我使用
DockControlBar(&m_BottomCtrBar, AFX_IDW_DOCKBAR_BOTTOM); //停靠在底部
RecalcLayout();
CRect rect;
m_BottomCtrBar.GetWindowRect(rect);
rect.OffsetRect(1, 0);
DockControlBar(&m_BottomCtrBar1, AFX_IDW_DOCKBAR_BOTTOM,rect); //停靠在底部

出现
|m_BottomCtrBar |CtrBar1| 将下面从中间分开! 前面的m_BottomCtrBar占了一大部分,!请问怎么修改呢?

有没有实例 啊,给一分
deeeq123456@163.com
...全文
79 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
liyelun 2010-01-24
  • 打赏
  • 举报
回复
我只知道在BCG中有这么一个函数
CBCGPFrameWnd::DockControlBarLeftOf (CBCGPControlBar* pBar, CBCGPControlBar* pLeftOf)
用它就可以将pBar放在pLeftOf的左边,至于MFC的我就不知道了
cattycat 2010-01-20
  • 打赏
  • 举报
回复
这种方式需要精确控制显示位置的。
  • 打赏
  • 举报
回复
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;
   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);
   }

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧