在某些情况下,我需要使用相同的CMFCToolBar对象(它是CMainFrame的成员)在SDI应用程序中切换工具栏。我正在尝试这样做:

void CMainFrame::ChangeTlbr(const int tlbIdx)
{
    m_wndToolBar.ResetImages();
    switch (tlbIdx)
    {
        case 0 :

            m_wndToolBar.LoadToolBar(IDR_TLBR1);

            break;
        case 1:

            m_wndToolBar.LoadToolBar(IDR_TLBR2);

            break;
    }

    m_wndToolBar.Invalidate();
    m_wndToolBar.UpdateWindow();
}

但是未加载下一个工具栏的位图。

在这种情况下,我做错了什么?如果有更好的方法可以做到这一点?

最佳答案

以下功能将用另一个工具栏将当前工具栏替换为 IDR_MAINFRAME1

void CMainFrame::OnChangeToolbar()
{
    m_wndToolBar.ResetAllImages();
    m_wndToolBar.LoadToolBar(IDR_MAINFRAME1);
    m_wndToolBar.LoadBitmap(IDR_MAINFRAME1);
    m_wndToolBar.AdjustSizeImmediate();
}

09-07 10:14