1

CMFCRibbonPanelからを削除するためのトリックを探していCMFCRibbonCategoryます。AddPanel()には関数だけがありますがCMFCRibbonCategory、ありませんRemovePanel()

これを行うには、本当に全体を再構築する必要がありCMFCRibbonCategoryますか?

明確にするために、私が望むのは、パネルの要素ではなく、パネル自体をカテゴリから削除することです。

4

2 に答える 2

3

私の場合、カテゴリを最初から再構築することになりました。CMFCRibbonCategoryソース コード ( を探します) には、afxribboncategory.cppパネル配列からパネルを削除する明らかな方法はありません。

于 2009-03-05T15:34:21.840 に答える
1

CMFCRibbonPanelとについては何も知りませんCMFCRibbonCategoryCMFCRibbonPanelMSDN でクラス宣言を見た後、 fromへの参照を取得してポインターCMFCRibbonCategoryを呼び出すことができると思いました。CMFCRibbonPanel::RemoveAll

CMFCRibbonCategory *pCategory = m_wndRibbonBar.GetCategory(0);

if (pCategory)
{
     CMFCRibbonPanel *pPanel = pCategory->GetPanel(0);

     if (pPanel)
     {
        pPanel->RemoveAll();
        m_wndRibbonBar.AdjustSizeImmediate();
     }
}
于 2009-02-26T15:54:33.427 に答える