看了下,基本没有人这么干过。
哪位牛人可以指点一二?  需求还是有的,别告诉我做在MainFrame和ChildFrame上。这个做法只能说明你对需求的漠视,有些复杂界面必须在视图内创建工具栏,位置我能自己计算不要紧。关键现在的问题是工具栏顺利加载但出不来。MDI结构,子窗体拆分过,3个视图,其中一个视图需要添加工具栏就这么简单。我目前的摸索发现:
CMFCToolBar类使用最方便,不过存在BUG
一、就算在MainFrame上创建第二个工具栏时,不能像第一个工具栏一样自带显示隐藏功能,不能出现有效的客户化下拉。
二、创建的工具栏按钮必须都是一个尺寸的(费解),都是16*15,如果你后面加个24*15就会破坏前面的按钮大小。乱了。
CToolBar类还没测试完
自定义命令窗口或许是个选择,不过会打打降低代码的可读性和一致性。
如果谁读过MFC源码应该能有思路。视图 工具栏 MFC视图工具栏

解决方案 »

  1.   

    我有个想法,来点实在的。QQ11853503
    本人在上海,哪位自认是高手的可以自荐下。
    我写的程序有些MFC框架相关的问题要一起解决下如果能解决
    解决所有问题1天1K人民币。
    解决不了管顿午饭15人民币。
    打酱油的,报销路费4人民币。
      

  2.   

    void CTouchPanelView::OnInitialUpdate()
    {
    CScrollView::OnInitialUpdate(); m_ScreenToolbar.Create( this ); m_ScreenToolbar.LoadToolBar(IDR_MAINFRAME); RepositionBars( AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0 ); m_ImageToolList.Create( 16, 16, ILC_COLOR32, 1, 1 ); m_ImageToolList.Add( AfxGetApp()->LoadIcon( IDI_ICON_CONTROLPAGE ) );
    m_ImageToolList.Add( AfxGetApp()->LoadIcon( IDI_ICON_CONTROLPAGE ) );
    m_ImageToolList.Add( AfxGetApp()->LoadIcon( IDI_ICON_CONTROLPAGE ) );
    m_ImageToolList.Add( AfxGetApp()->LoadIcon( IDI_ICON_CONTROLPAGE ) );
    m_ImageToolList.Add( AfxGetApp()->LoadIcon( IDI_ICON_CONTROLPAGE ) );
    m_ImageToolList.Add( AfxGetApp()->LoadIcon( IDI_ICON_CONTROLPAGE ) ); m_ScreenToolbar.SendMessage( TB_SETIMAGELIST, 0, ( LPARAM )m_ImageToolList.m_hImageList ); m_ScreenToolbar.MoveWindow( 0, 0, 100,32); 
    }对于楼主你的"关键现在的问题是工具栏顺利加载但出不来",我只是拿我的代码测试一下,顺便改改,可以显示啊.这只是个问题而已,不用讲钱。
      

  3.   

    请参考这里: http://blog.csdn.net/abesky/article/details/1822783
      

  4.   

    在你的view田间toolbar变量,然后在OnCreate里面
    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_TOOLBAR1 ))
    {
    TRACE0("Failed to create toolbar\n");
    return -1; // fail to create
    }最后用MoveWindow来显示出来,好像不能自动的确定大小,还有就是在你的View的OnDraw里面,记得要把Toolbar占的位置给考虑了,否则就会覆盖部分内容。