- 締切済み
メインダイアログを表示させずにファイル選択ダイアログを表示
VC++2005のMFCダイアログベースでプログラムを作成しています。 自動生成されたプログラムを何も変更しないまま実行すると、 メインのダイアログが表示されますが、 そのダイアログを表示させずに、ファイル選択ダイアログを表示させたいのです。 自分で実装しビルド実行したところ、期待動作をしましたが、 ファイル選択ダイアログを閉じた後に、画像のようなエラーが発生してしまいます。 エラーを発生させず、期待動作をさせる良い実装方法をご存知の方おられましたら、 ご教示お願い致します。 【変更実装(エラー発生)】 BOOL CtestApp::InitInstance() { … CtestDlg dlg; m_pMainWnd = &dlg; // INT_PTR nResponse = dlg.DoModal(); //コメントアウト dlg.OnBnClickedButton1(); //ファイル選択ダイアログを表示する関数 //if (nResponse == IDOK) //コメントアウト //else if (nResponse == IDCANCEL) //コメントアウト … } void CtestDlg::OnBnClickedButton1() { CFileDialog ReadDlg( TRUE, NULL, "*.txt", OFN_HIDEREADONLY | OFN_FILEMUSTEXIST, "txtファイル(*.txt)", this ); … }
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- phoenix343
- ベストアンサー率15% (296/1946)
ファイルダイアログを出すだけなのなら、 CtestDlgの代わりにCFileDialogにすればいいだけですよ。 CtestDlgクラスそのものがいりません。
お礼
ご回答ありがとうございます。 確かにそうですね。。ただ今回の方法としては、 CtestDlgのメンバ関数であるCFileDialogを用いた関数をコールし、 期待動作をさせるつもりでしたので、このような回りくどい方法となってしまったのです。 今確認したところ、 m_pMainWnd = &dlg; をコメントアウトすることで期待動作させることが出来ました。 どうやらAfxWinMainの中で落ちていたようです。 アドバイスありがとうございました。