- コモンダイヤログを使いファイル名を取得 -



コモンダイヤログのファイルダイヤログクラスを使いファイルパス名を取得するサンプル




≪ MFC・ダイヤログベースでの作成例 ≫


 ■ ダイヤログにボタンと、エディットボックスを追加



※サンプルではIDを以下のようにしています
※エディットボックス:ID → IDC_FILENAME
※ボタン:ID → IDC_BT





 ■ ClassWizardを呼び出し追加したボタンにクリックイベントを追加



※サンプルではIDを以下のようにしています
※エディットボックス:ID → IDC_FILENAME
※ボタン:ID → IDC_BT





 ■ ダイヤログクラスにCString型メンバー変数m_filenameを作成










 ■ 追加したクリックイベント関数にソースを追加


void CTest001Dlg::OnBt()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください


//ファイルダイヤログボックス作成
CFileDialog filename(
//ファイルを開く→TRUE ファイルに名前を付けて保存→FALSE
TRUE,

//デフォルトのファイル拡張子 NULLの場合指定無し
NULL,

//初期表示ファイル名
NULL,

//フラグ設定 読取専用と、ファイルの存在のチェックフラグ設定
OFN_HIDEREADONLY | OFN_FILEMUSTEXIST,

//ファイルを特定する為のフィルタ
"実行ファイル(*.exe)|*.exe||",

//親ウインドウへのポインタ NULLで所定親ウインドウに指定
NULL

);

//ファイル ダイアログ ボックスを表示しOKが押されたかチェック
if (filename.DoModal() == IDOK){
//ファイル名を取得
m_filename = filename.GetPathName();

//エディットボックスにメッセージを送る
GetDlgItem(IDC_FILENAME)->SetWindowText(m_filename);

//ダイヤログの更新
UpdateData(FALSE);
}
}






 ■ 以上コンパイルすれば完成



ボタンクリックでコモンダイヤログが開き追加したメンバー変数m_filenameにファイルパスが格納される