いつも参考にさせていただいております。
ひろともうします。
現在、MDIベースのアプリケーションを作成しています。
MDI子ウィンドウをオープンした時に、メインフレームの
メニューの内容が自動的に切り替わってしまいます。
例えば、MDI子ウィンドウをオープンする前に
メインフレームの右から2番目のサブメニューを動的に
作成したとします。
それをMDI子ウィンドウをオープンした時に
右から3番目のサブメニューにAttach?することはできるのでしょうか?
また、全てのMDI子ウィンドウを閉じた時に
元の位置のメインフレームの右から2番目のサブメニューに
戻すことはできるのでしょうか?
環境は Win2k、VC++6.0 SP5、MFC4.2 です。
よろしくお願い致します。
> 例えば、MDI子ウィンドウをオープンする前に
> メインフレームの右から2番目のサブメニューを動的に
> 作成したとします。
コレはCMainFrame::OnInitMenu()で行っていますよね?
アクティブな子フレームが取得できますから、その結果により振り分けたらどうでしょうか?
面倒くさい場合は全部同じメニューにしちまうとか。
↑実際、選択したフレームによりメニューが変わるとユーザに分かり辛いという場合もあります
し(逃げですか?(ToT))
素朴な疑問なんですが、基準が右なのはどうしてですか?
ひろぴー様
返事が遅くなり、大変申し訳ございません。
仕事が火を噴いてしまい、重い軟禁(監禁?)状態だったもので。。。
メニューですが、OnInitMenuPopup()で振り分けできました。
ありがとうございます。
ついでで申し訳ございませんが、
今回、お気に入りのようなものを作ろうと考えています。
指定したあるディレクトリのサブディレクトリを
メニューに追加していきたいのですが、
ディレクトリはいつ追加や移動、削除されるかわからないので
OnInitMenuPopupで表示される直前に毎回チェックをしようと思ったのですが、
面倒くさいので全消滅後、全作成にしてしまったら
メニューが表示されるまで時間がかかりすぎてしまいます。
何かよい方法があったら教えてください。
よろしくお願い致します。
p.s. 左から数えると、6番目と7番目になります(笑)
> 面倒くさいので全消滅後、全作成にしてしまったら
> メニューが表示されるまで時間がかかりすぎてしまいます。
ぬぬ、抽出に時間がかかっているなんてことはないですか?
自分も全削除/全追加をやりましたが、全く気にならなかったです。
他PCのアプリとのやり取りをしながら項目を追加していったので、表示までに結構時間がかか
るかな?と思ったのですが、それほどでもありませんでした。20個程度だったからかも。
市販のアプリでも、メニューからフォントを選べるようになっていて、表示までに結構時間がか
かっていたおぼえがあるので、数が多ければしょうがないのかな~と思っています。
ひろぴー様
遅いのは指定ディレクトリ内の全検索をするからですかねぇ。。
抽出時間をチェックしてみます。
ちなみにメニュー項目をクリックしてから表示されるまで
5秒くらいかかっています。
Explorerのお気に入りってどう作られているかなぁ?
ありがとうございました。