VC2008SP1でMFC Feature Packを使ってSDIアプリケーションを作成してるのですが、
現在、以下のかたと同じ問題で悩んでいます。
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200908/09080008.txt
ただし、自分のアプリケーションでは、
EnablePaneMenu()やEnableCustomizeButton()を呼ばないようにし、
ユーザがメニューやツールバーをカスタマイズできないようにしています。
ところが、開発中にメニューリソースの表示文字列を変えても
アプリケーション内のメニューの表示が古いままだったり、
ツールバーの項目や順番を変更するたびに表示が壊れてしまったり
といった問題が発生しています。
そのたびにレジストリをすべて消せば元には戻り、開発中はそれでもよいのですが、
そうするしかないとなると、リリース後ののバージョンアップなどの際の対応が
思いやられそうで躊躇しています。
メニューやツールバーはカスタマイズできなくしているので、
ペインの位置などの情報以外は、本来レジストリに保存したり復元したり
という処理自体が不要なはずなのですが、
そのようなことはアプリケーション側から指定できるものなのでしょうか?
もしくは、メニューやツールバーの情報のみを起動時にリセットするような
方法はありますでしょうか?(位置などは残したい)
メニューのマネージャが勝手にやってしまうのですね。
InitContextMenuManager()とかいう行がありますよね(たぶん)。
止めるには、
1.デフォルトのコンテキストメニューマネージャを使わない(カスタム化する)
2.立ち上がり時にSetRegistryKey()で指定しているレジストリを破棄する
3.そもそもCWinAppExを使わない
等があります。
間違った、やってみたら、コンテキストメニューマネージャは関係ないかもm(__)m。
メインフレームのメンバーのメニュー CMFCMenuBar を派生させて
カスタムにすると、ドキュメントに依存したメインメニューには、
影響が出ないようなので、やってみたらどうでしょう。
各ペインのボタンなどは、不明です。あしからず(vv;)。