初めて、投稿いたします、レコバと申します。
ファイル選択ダイアログ宣言時にOFN_FILEMUSTEXISTを指定すると
存在しないファイルパスであれば警告メッセージが出るはずなのですが
出なくて困っております。
ただし、ドライブを指定した場合はなぜか警告メッセージが出てくれます。
例)
H:\ >>警告メッセージ表示
H:\ABC >>警告メッセージ表示されない。(Hドライブは存在しない状態で)
どなたかご教授していただきますようよろしくお願いいたします。
ソース)
CString strExtKind;
strExtKind.Format(ファイル(*.dat)|*.dat|すべてのファイル(*.*)|*.*||);
CFileDialog dlg(true,dat,
NULL,OFN_FILEMUSTEXIST |OFN_HIDEREADONLY,strExtKind);
dlg.m_ofn.lpstrInitialDir = m_strFilePass;
if( dlg.DoModal() != IDOK ){
return;
}
ご質問の内容について、確認したいのですが、
(1) dlg.m_ofn.lpstrInitialDir = _T(H:\\);
とすると、
----------------------------------------
H:\ にはアクセスできません。
このフォルダは移動または削除されました。
----------------------------------------
と警告メッセージが表示され、OK を押すと、マイドキュメントが開くが,
(2) dlg.m_ofn.lpstrInitialDir = _T(H:\\abc);
とすると、ダイアログが出ずに、マイドキュメントが開く、
という現象のことですか?
#私の環境(VC++6.0(spなし) Win98)ではこうなるので、聞いてみました。
それとも、ファイル名(&N)のエディットボックスに、
H:\ と入力して、OKを押すと、警告メッセージが表示され、
H:\abc と入力して、OKを押すと、表示されずに dlgが終了する
のでしょうか。
#私の環境では,いずれの場合も、警告メッセージが表示されます。
それとも、それ以外の現象なのでしょうか?
訂正です
(1)の場合、警告メッセージの後、デスクトップが開く
#MSDNのヘルプによると、lpstrFile と lpstrInitialDir に入っているもの
#に応じて、最初に開く場所が変わるらしい。しかも、98系とNT系と初期のNT系とでも
#違うらしい。