在对话框中已创建了一个工具条,再在对话框中任意空余位置创建第二个工具条,而不使第一个工具条的位置发生改变,请问怎么实现?谢谢!

解决方案 »

  1.   

    应该可以create到指定的地方吧。毕竟TOOLBAR也是一个CWIN
      

  2.   

    水平停靠二个工具栏,m_wndToolBar是第一个工具栏,m_wndToolBar1是第二个工具栏

    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)

       //
          .....
          //到这里,二个工具栏都已经创建好了,下面安排第二个工具栏的位置,不影响第一个   //工具栏位置
       //水平停靠第二个工具栏
          CRect rect;
    RecalcLayout();
    m_wndToolBar.GetWindowRect(&rect);//取得第一个工具栏的区域,由这个区域计算出第二个工具栏的位置,看下一句
    CRect rect1(rect.right,rect.top,rect.right+rect.Width(),rect.bottom);//构造停靠区域
    DockControlBar(&m_wndToolBar1,AFX_IDW_DOCKBAR_TOP,&rect1);//停靠
      

  3.   

    对话框不具有停靠功能, 像工具栏,有必停靠在以CFrameWnd或CMiniFrameWnd的"所有者"窗口上,所以你先在对话框上建立CMiniFrameWnd窗口, 然后再在CMiniFrame上DockControlB ar就行了
      

  4.   

    比较简单的方法就是放置一个静态控件,然后动态创建工具栏,用MoveWindow函数将它移动上去作为它的子窗口。
      

  5.   

    谢谢上面朋友的帮忙!
    问题我已经解决了。因为我要创建许多的工具条,而每组工具条只有一个按钮,所以我用
    CBitmapButton和CToolTipCtrl代替。