VS2008 を使用する doc/view プロジェクトでは、メニュー項目の追加と削除がメニューの UI に反映されるため、 MFCMenuBarはプロジェクトから正しい MENU リソース (IDR_MAINFRAME) をロードするように見えます。アクセラレータをデフォルトのメニュー項目に追加することさえできます (たとえば、Ctrl+O を [開く...] 項目に追加します)。ただし、アクセラレータ テーブル (IDR_MAINFRAME) はメニューに接続されていないようです。Open... のデフォルトの Ctrl+O を Ctrl+7 のようなものに変更しても機能しません。Ctrl+O は引き続き Open... メニュー項目に追加され、Ctrl+O は引き続き Open... ハンドラを呼び出します。リソース ファイルにはアクセラレータ テーブルが 1 つしかないため、CMFCMenuBar がアクセラレータ情報をどこで取得しているかわかりません。
この時点で、IDR_MAINFRAME アクセラレータ テーブルを手動でロードし、メッセージを自分で変換することで、アクセラレータを動作させることができました。ただし、CMFCMenuBar はまだ既定のアクセラレータを追加しています。
ここで何が起こっているのか誰でも説明できますか? MFCMenuBar にアクセラレータ テーブルを強制的に使用させ、アクセラレータを追加しないか、正しいアクセラレータを追加するにはどうすればよいですか?