プロが教えるわが家の防犯対策術!

開発環境:VC++2008 MFCダイアログ
プロジェクト作成名:test

簡単なMFCの処理内容を勉強しています。
画像のようなダイアログベースで処理を行っており、
処理の流れは以下です。

1. "参照"で実行ファイルを選択
2. "エディットコントロール"で読み込んだディレクトリの絶対パスを表示
3. "起動"で実行を行う。

上記のプログラムにINIでの保存/読み込みを追加し、(iniは本プログラムと同階層に)
毎回、参照から読み込まなくても、次回以降は自動で変数に読み込まれるようにしようと思ってます。

そこで分からないことが2つあります。
 ・質問1: test.cppで閉じるボタンが押されたときに処理を行う方法
 ・質問2: INIの同ディレクトリに保存をtestDlg.cpp側で行う方法

質問1補足:
 以下のようなOK/キャンセル処理が最初からありますが、
 これらのような形式でtest.cpp側で終了判定を行いたいです。
---------------------------------------
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: ダイアログが <OK> で消された時のコードを
// 記述してください。
}
else if (nResponse == IDCANCEL)
{
// TODO: ダイアログが <キャンセル> で消された時のコードを
// 記述してください。
}
---------------------------------------
ですが、私のプログラムではOK/キャンセルは使っていないので
閉じるボタンを押したとき、上記のような処理をさせることはできないでしょうか?
できるならば、そこにINIの保存処理を入れたいと思います。


質問2補足:
 test.cppのCtestApp::InitInstance()にて
---------------------------------------
TCHAR path[_MAX_PATH+1];
GetModuleFileName( NULL, path, _MAX_PATH );
PathRenameExtension( path, TEXT(".ini") );
free((void*)m_pszProfileName);
m_pszProfileName=_tcsdup(path);
---------------------------------------
"本プログラムを実行したときと同じディレクトリにINIを保存する" ようにしているので
testDlg.cppでボタンを押したときに保存する処理を行うと、
保存される場所がWINDOWSファイルの方に行ってしまうため、
どうしていいかわからない状況です。

初歩的な質問ですが、何卒宜しくお願いします。

「MFCダイアログの終了判定」の質問画像

A 回答 (1件)

とりあえず、質問1だけ。

ダイアログの閉じるボタンのクリック時のハンドラで EndDialogを呼び出すときに任意の値を渡せば、DoModal終了時に判定できます。
    • good
    • 0
この回答へのお礼

無事終了判定はできました、ありがとうございます。
ですが、いまだにいくら検索してもINIの保存がうまくいきません・・。

お礼日時:2011/04/24 19:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!