小弟刚刚开始学习MFC,对于toobar的制作不是很了解!想替换vc自带的toolbar,又不知道怎么做,望大家赐教,最好有一个实际的例子!

解决方案 »

  1.   

    可以自己绘制位图。其实toolbar就是一个位图而已,这可以从它的实际文件中可以看出。
    因此你完全可以用绘图工具来自己绘制工具条。
      

  2.   

    http://vckbase.com/document/listdoc.asp?mclsid=3&sclsid=305
      

  3.   

    http://www.vchelp.net/wyy/tour/vc_road.asp
      

  4.   

    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
    if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
    return -1;

    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_wndStatusBar.Create(this) ||
    !m_wndStatusBar.SetIndicators(indicators,
      sizeof(indicators)/sizeof(UINT)))
    {
    TRACE0("Failed to create status bar\n");
    return -1;      // fail to create
    } // TODO: Delete these three lines if you don't want the toolbar to
    m_bar.Create(32,32, TRUE | ILC_COLOR32, 10, 0);
    HICON hIcon = NULL;
        m_bar.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
    m_bar.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
    m_bar.Add(AfxGetApp()->LoadIcon(IDI_ICON3));
    m_bar.Add(AfxGetApp()->LoadIcon(IDI_ICON4));
    m_bar.Add(AfxGetApp()->LoadIcon(IDI_ICON5));
    m_bar.Add(AfxGetApp()->LoadIcon(IDI_ICON6));
    m_bar.Add(AfxGetApp()->LoadIcon(IDI_ICON7));
    m_bar.Add(AfxGetApp()->LoadIcon(IDI_ICON8));
    m_bar.Add(AfxGetApp()->LoadIcon(IDI_ICON9));
    m_bar.Add(AfxGetApp()->LoadIcon(IDI_ICON10));
    m_bar.Add(AfxGetApp()->LoadIcon(IDI_ICON11));
    m_bar.Add(AfxGetApp()->LoadIcon(IDI_ICON12));// hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
    // MAKEINTRESOURCE(IDI_ICON1), IMAGE_ICON, 32,32, 0);
    // m_bar.Add(hIcon);
    CSize size;
    size.cx=63;
    size.cy=38;
    m_wndToolBar.GetToolBarCtrl().SetImageList(&m_bar);
        m_wndToolBar.GetToolBarCtrl().SetButtonSize(size);
    //  be dockable
    m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
    EnableDocking(CBRS_ALIGN_ANY);
    DockControlBar(&m_wndToolBar); return 0;
    }
      

  5.   

    你这个方法是把每一个按钮加载一个ICON是吗?