一个工具条停放在另一个工具条的右边

本文介绍如何使用MFC创建并定制两个工具栏,包括真彩色工具栏和测量工具栏,并实现左侧偏移停靠功能。文章详细展示了在CMainFrame类中进行工具栏创建、加载及停靠的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

step1:

             在CMainFream头文件(.h)中加:

            CTrueColorToolBar m_wndToolBar;
            CTrueColorToolBar m_meauserToolBar;

            void DockControlBarLeftOffset(CToolBar* right,CToolBar* left);

step2:

            在CMainFream源文件(.cpp)中加:

            if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | /*WS_VISIBLE | */CBRS_TOP
                  | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
                  !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
           {
                   TRACE0("Failed to create toolbar\n");
                    return -1;      // fail to create
          }

           if (!m_meauserToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD/* | WS_VISIBLE */| CBRS_TOP | CBRS_ALIGN_TOP
                   | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
                   !m_meauserToolBar.LoadToolBar(IDR_TOOLBAR_MEASURE))
          {
                   TRACE0("Failed to create toolbar\n");
                   return -1;      // fail to create
          }

          m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
          EnableDocking(CBRS_ALIGN_ANY);
          DockControlBar(&m_wndToolBar);

          m_meauserToolBar.EnableDocking(CBRS_ALIGN_ANY);
          DockControlBarLeftOffset(&m_meauserToolBar,&m_wndToolBar);

 

step3:

          在CMainFream源文件(.cpp)中加:

          void CMainFrame::DockControlBarLeftOffset(CToolBar* right,CToolBar* left)

          {
                   CRect rect;
                   DWORD dw;
                   UINT n;
                   RecalcLayout();
                   left->GetWindowRect(&rect);
                   rect.OffsetRect(1,0);
                   dw = left->GetBarStyle();
                   n = 0;
                   n = (dw & CBRS_ALIGN_TOP) ? AFX_IDW_DOCKBAR_TOP : n;
                   n = (dw & CBRS_ALIGN_BOTTOM) ? AFX_IDW_DOCKBAR_BOTTOM : n;
                   n = (dw & CBRS_ALIGN_LEFT) ? AFX_IDW_DOCKBAR_LEFT : n;
                   n = (dw & CBRS_ALIGN_RIGHT) ? AFX_IDW_DOCKBAR_RIGHT : n;
                   DockControlBar(right,n,&rect);
           }

step4:

           run

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值