0

MFC MDI アプリケーションをアップグレードして、新しい MFC Feature Pack を使用しようとしています。

CToolbar を CMFCToolBar に変換しました。現在、特定の条件下でツールバーの 1 つの項目を無効にしようとしています。アイテムの ID の ON_UPDATE_COMMAND_UI メッセージをリッスンし、次のように記述してアイテムを無効にしました。

pCmdUI->Enable(FALSE);

これは、ON_UPDATE_COMMAND_UI メッセージが CView オブジェクトで処理された場合にのみ完全に機能し、CMFCToolbar 派生クラスで処理された場合には機能しません。

ツールバー クラス自体から項目を無効にする方法があれば?

4

1 に答える 1

0

ツールバーは、MFC のコマンド ルーティングの一部ではありません。そのため、コマンドおよび更新コマンドの UI メッセージを取得することはありません。ここでコマンド ルーティングの詳細を確認できます: MFC コマンド ルーティング

コマンド メッセージを取得するオブジェクトの 1 つで OnCmdMsg() メソッドを上書きし (上記のリンクを参照)、メッセージをツールバーに渡すことができます。

于 2012-02-21T11:39:53.033 に答える