请问如何在对话框中任意位置加入工具条(toolbar),谢谢!
如果有程序贴个程序更好,没有的话告诉我方法也好。
在线等.
PS:在对话框的顶部和底部加入工具条我懂,所以这方面的回答就不用了,^_^

解决方案 »

  1.   

    CFrameWnd::EnableDocking(CBRS_ALIGN_ANY)
      

  2.   

    CFrameWnd* FloatControlBar( CControlBar * pBar, CPoint point, DWORD dwStyle = CBRS_ALIGN_TOP );
      

  3.   

    if( !m_toolbar.CreateEx(this))
    {
    TRACE0("Failed to create toolbar\n");
    return -1;      // fail to create
    }

    CImageList img;
    img.Create(16, 16, ILC_COLORDDB|ILC_MASK, 1, 8);
    HBITMAP hbmp = ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1));
    ImageList_AddMasked(img.GetSafeHandle(), hbmp, RGB(255,0,255));
    m_toolbar.GetToolBarCtrl().SetImageList(&img);
    img.Detach();m_toolbar.SetButtons(NULL, 3);
    m_toolbar.ModifyStyle(0, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT| TBSTYLE_TOOLTIPS );
    m_toolbar.ModifyStyleEx(0, WS_EX_TOOLWINDOW); 
    m_toolbar.SetBarStyle(m_toolbar.GetBarStyle()|CBRS_TOOLTIPS | CBRS_FLYBY |CBRS_FLOAT_MULTI|CBRS_SIZE_FIXED);m_toolbar.SetButtonInfo(0,1001, TBSTYLE_BUTTON, 1);
    m_toolbar.SetButtonInfo(1,1002, TBSTYLE_BUTTON, 2);
    m_toolbar.SetButtonInfo(2,1003, TBSTYLE_BUTTON, 0);

    RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST, 0);CRect recttool;recttool.left = 120;
    recttool.right = 215;
    recttool.top = 50;
    recttool.bottom = 72;
    m_toolbar.MoveWindow(recttool);
      

  4.   

    将你原来的 RepositionBars 这一句改成下面一句RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0, reposDefault, CRect(100,100,500,125),CRect(100,100,500,125));就可以在对话框100,100的位置上放上工具栏,我已经试过了,绝对没错。
      

  5.   

    to:BestBear(天外飞熊)
    IDB_BITMAP1是一幅包含一个还是多个图形按钮的图画?
    你给出的例子是不是三个工具按钮的?
      

  6.   

    是的,你把wanilyer(缘随影去)的方法也测试一下,如果可行,就不用movewindow了
      

  7.   

    IDB_BITMAP1是一个包含多个图标的图像列表,就像单文档工程模板中生成的工具栏的位图一样的,在单文档工程res目录下可找到
      

  8.   

    wanilyer(缘随影去)的方法是可行的
      

  9.   

    工具条加了进去,但是怎么让那些按钮响应鼠标点击事件呢?
    好像Event里只有command事件而没有BN_CLICKED事件,谢谢!