在某些情况下,我需要使用相同的 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();
}
关于c++ - 如何更改 CMFCToolBar 运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38588238/