none
MDI中主窗体新加的自定义工具栏如何激活,始终为disable状态,请帮忙看看 RRS feed

  • 问题

  • 想要为程序扩展功能,将这些功能写在一个自定义工具栏里,独立于默认工具栏加在主窗体,但是主窗体启动后,自定义的工具栏的状态始终为disable,默认的那个工具栏工作正常

          自定义工具栏派生于CMFCDropDownToolBar(和CToolBar区别不大),重写了Create成员函数,如下:

    bool COwnToolBar::Create(CWnd *pWndParent)
    {
     CMFCDropDownToolBar::Create(pWndParent, WS_CHILD | WS_VISIBLE |CBRS_TOP| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC, 0);
     this->LoadBitmap(IDB_BITMAP_OWNTOOL_HOT, IDB_BITMAP_OWNTOOL_COLD, 0, FALSE, IDB_BITMAP_OWNTOOL_DIS, 0);
     this->SetButtons(g_OwnToolBtnIDs, 5);
     return true;
    }

    CMainFrame中定义COwnToolBar       m_OwnToolBar;

    并在CMainFrame::OnCreate中写了以下代码

    if(!m_OwnToolBar.Create(this))
     {

      TRACE0("Failed to create Own tool bar\n");
      return -1;
     }
     m_OwnToolBar.EnableDocking(CBRS_ALIGN_ANY);
     EnableDocking(CBRS_ALIGN_ANY);
     DockPane(&m_OwnToolBar);

    但是当主窗体运行时,工具栏始终为disable。。。是需要在代码中显式激活吗?以上是这个工具栏相关的所有代码

    我是遵循MSDN上写的方法啊,应该没问题啊:

    Visual C++ provides you with two methods to create a toolbar. To create a toolbar resource using the Resource Editor, follow these steps:

    1. Create a toolbar resource.

    2. Construct the CToolBar object.

    3. Call the Create (or CreateEx) function to create the Windows toolbar and attach it to the CToolBar object.

    4. Call LoadToolBar to load the toolbar resource.

    Otherwise, follow these steps:

    1. Construct the CToolBar object.

    2. Call the Create (or CreateEx) function to create the Windows toolbar and attach it to the CToolBar object.

    3. Call LoadBitmap to load the bitmap that contains the toolbar button images.

    4. Call SetButtons to set the button style and associate each button with an image in the bitmap.

    我使用的是第2种方法,全部做到了啊,请问问题何在?

    2010年8月13日 21:54

答案