MainMenu のマージ

MDI アプリを作るときに問題となってくるのが、メニュー(以下:MainMenu)の切り替え方である。MSOffice などを例にとるとわかりやすいが、子ウィンドウがある場合と、全て閉じてしまった場合では、MainMenu の中身が若干異なる。この例を初めとして、アクティブになっている子ウィンドウによって MainMenu の中身を切り替える、という必要はしばしば出てくる。
原理としては簡単で、まず親ウィンドウに、子ウィンドウがない場合の大元となる MainMenu を配置しておく。次に各子ウィンドウに、それがアクティブになった場合に使われる MainMenu を配置しておく。あとは、アクティブであるかどうか判断して、どれを用いるか決めるだけである。これは MainMenu の AutoMerge プロパティで実現できる。
とはいえ、まだ一度もうまくいったためしがない。