ダイアログバーを追加後のファイルアクセス

[戻る]
habu 2008/02/27(水) 10:22:43
http://rararahp.cool.ne.jp/vc/vctips/bar.htm 
VC6.0MFCを使っています。 
ウィザードでCFrameViewから作成したSDIをつくり、 
デフォルトのメニューバーに加え、IDD_DIALOGABARを 
プラスしました。 
最初に起動したときにファイル読み込みを行ったときには、ファイル読み込みのダイアロ
グが出て、CxxxDocの Serialize関数を読み込みます。 
が、なぜか2回目を起動したときにファイル読み込みのダイアログは出るのですが、 
Serialize関数まで行きません。それはブレークポイントで調べました。 

また別のファイルを読んだときはSerializeまで行くみたいです。 
ところが同じファイルを読み込んだときは、全く反応がありません。 
普通のデフォルトのフォームビューではそんなことはありませんでした。

こういうときに陥りやすい罠とかあったら教えてください。 

Viewとダイアログバーのメッセージ交換自体はうまくいっています。

habu 2008/02/27(水) 11:43:42
自己レスです。
WizardでCxxxDocのOnOpenDocumentを追加し、

if (!CDocument::OnOpenDocument(lpszPathName))

このあたりでブレークポイントをかけると、やはり1回目は
ブレークポイントにかかり、2回目はスルーされました。

シャノン 2008/02/27(水) 13:59:33
ダイアログバーとファイル読み込みがどういう形で関係しているのですか?
フォームビューはどうだか知りませんが、「今開いているファイルは開きなおさない」
は MFC のデフォルトの挙動だと思います。

habu 2008/02/27(水) 17:37:09
[[解決]]
http://www2.plala.or.jp/t-note/program/tips005.htm
ファイルアクセスの仕組みが元々そのようになっていたのですね。
知りませんでした。
いらんお節介と思いながらも、確かに同じファイルを2度読み込まない
処理が必要なときもありますね。

habu 2008/02/27(水) 20:47:36
すいません、シャノンさんお礼を言うのを忘れていました。
ありがとうございます。

古いスレッドには追加発言できません。