http://rararahp.cool.ne.jp/vc/vctips/bar.htm
VC6.0MFCを使っています。
ウィザードでCFrameViewから作成したSDIをつくり、
デフォルトのメニューバーに加え、IDD_DIALOGABARを
プラスしました。
最初に起動したときにファイル読み込みを行ったときには、ファイル読み込みのダイアロ
グが出て、CxxxDocの Serialize関数を読み込みます。
が、なぜか2回目を起動したときにファイル読み込みのダイアログは出るのですが、
Serialize関数まで行きません。それはブレークポイントで調べました。
また別のファイルを読んだときはSerializeまで行くみたいです。
ところが同じファイルを読み込んだときは、全く反応がありません。
普通のデフォルトのフォームビューではそんなことはありませんでした。
こういうときに陥りやすい罠とかあったら教えてください。
Viewとダイアログバーのメッセージ交換自体はうまくいっています。
自己レスです。
WizardでCxxxDocのOnOpenDocumentを追加し、
if (!CDocument::OnOpenDocument(lpszPathName))
このあたりでブレークポイントをかけると、やはり1回目は
ブレークポイントにかかり、2回目はスルーされました。
ダイアログバーとファイル読み込みがどういう形で関係しているのですか?
フォームビューはどうだか知りませんが、「今開いているファイルは開きなおさない」
は MFC のデフォルトの挙動だと思います。
http://www2.plala.or.jp/t-note/program/tips005.htm
ファイルアクセスの仕組みが元々そのようになっていたのですね。
知りませんでした。
いらんお節介と思いながらも、確かに同じファイルを2度読み込まない
処理が必要なときもありますね。
すいません、シャノンさんお礼を言うのを忘れていました。
ありがとうございます。