這是在插入按鈕後調用AdjustLayout後解決的。代碼如下。
void MyClass::ReplaceButtons()
{
m_m_myMFCToolbar.RemoveAllButtons();
if(condition1)
{
m_myMFCToolbar.InsertButton(CMFCToolBarButton(ID_BUTTON1, 0, _T("MyText1"), FALSE, TRUE));
m_myMFCToolbar.InsertButton(CMFCToolBarButton(ID_BUTTON2, 1, _T("MyText2"), FALSE, TRUE));
}
else
{
m_myMFCToolbar.InsertButton(CMFCToolBarButton(ID_BUTTON3, 2, _T("MyText3"), FALSE, TRUE));
m_myMFCToolbar.InsertButton(CMFCToolBarButton(ID_BUTTON4, 3, _T("MyText4"), FALSE, TRUE));
}
m_myMFCToolbar.AdjustLayout(); // This was added to resolve the issue
CSize sizeToolBar = m_myMFCToolbar.CalcFixedLayout(FALSE, TRUE);
m_myMFCToolbar.SetWindowPos(NULL, 0, 0, sizeToolBar.cx, sizeToolBar.cy, SWP_NOACTIVATE | SWP_NOZORDER);
}
如果你的代碼沒有顯示所需的行爲,它幫助,如果你提供的代碼,理想情況下[最小,完整,可驗證的示例](http://stackoverflow.com/help/mcve)。 – IInspectable