2009-02-26 12 views
1

を削除するためのヒントをCMFCRibbonCategoryから探しています。 の機能はCMFCRibbonCategoryにありますが、RemovePanel()にはありません。CMFCRibbonCategoryからCMFCRibbonPanelを削除することはできますか?

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

私が欲しいのは、パネルから要素を削除するのではなく、パネル自体をカテゴリから削除することです。

答えて

1

私はCMFCRibbonPanelCMFCRibbonCategoryについて何も知らない。 MSDNのクラス宣言を見てから、CMFCRibbonPanelへの参照をCMFCRibbonCategoryから得ることができ、ポインタにCMFCRibbonPanel::RemoveAllを呼び出すと思った。

CMFCRibbonCategory *pCategory = m_wndRibbonBar.GetCategory(0); 

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

    if (pPanel) 
    { 
     pPanel->RemoveAll(); 
     m_wndRibbonBar.AdjustSizeImmediate(); 
    } 
} 
+1

パネルの要素ではなく、pPanel自体を削除します。 現時点: を使用する必要があります(pPanel-> GetCount()) { VERIFY(pPanel-> Remove(0)); } insted of pPanel-> RemoveAll(); https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=377527&wa=wsignin1.0 – mem64k

+0

これは3年前のことですが、今後ともよろしくお願いします。 –

3

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

+0

そうです、私もこの解決策に終わります!私は接続要求を追加しました!ここに投票してください:http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=419881 – mem64k

+0

私も。しかし、すべてのパネルを削除したかったので気にしなかったので、新しいカテゴリを追加して古いパネルを削除しました。しかし、まだCMFCCategory :: RemoveAllPanelsと同じくらい良いものではなかったでしょう... – demoncodemonkey

関連する問題