Visual Studio のアンマネージ C++ アプリケーションでWindows リボン フレームワークを使用しています。実行時にボタンやその他のコントロールを追加することはできますか? IUIFramework::LoadUI を使用してリボンをセットアップできますが、後で変更することはできません。
2 に答える
実行時にボタンを追加または削除することはできませんが、アプリケーション モードを使用して実行時にタブまたはグループを表示または非表示にすることができ、実行時にボタンのテキストと画像を設定できます。
そのため、特定のアプリケーション モードが設定されている場合にのみ表示され、ランタイムで定義されたテキストと画像を含む多目的ボタンを宣言して使用できます。
マークアップで定義されている内容に応じて、実行時にモードを切り替えることができます。詳細については、こちらを参照してください。
マークアップでモードを定義すると、コンテキスト イベントに応じてモードを簡単に有効または無効にできます。前に述べたように、リボン アプリケーションは常に既定のモード 0 で開始します。アプリケーションが初期化されてモード 0 がアクティブになった後、IUIFramework::SetModes 関数を呼び出して、アクティブなモードのセットを変更できます。
ここには、実行時の変更がかなり制限されているというコメントがあります。これは、サードパーティのラッパーに関するものです。
ギャラリー コントロールにのみ、実行時に項目を動的に追加できます。
ComboBox、SplitButtonGallerty、DropDownGallery、InRibbonGallery
事前に追加したいものがわかっている場合は、ContextualTabs と ApplicationModes を使用して、(事前定義された) タブとグループの可視性を変更できます。
残念ながら、実行時にグループを動的に追加できます。
これは Windows リボン フレームワークの制限であり、ラッパー ライブラリの制限ではないことに注意してください。