ファイルの保存ダイアログでデフォルト命名したい
ファイルの保存ダイアログでデフォルト命名したい
Win32API(C言語)編 第55章 ファイルを開く・保存のコモンダイアログ
http://www.geocities.jp/ky_webid/win32c/055.html
をみてファイルの保存ダイアログを出せるようになりました。
しかし、たまーにフリーソフトなどでもファイルを保存する際に、
デフォルトのファイル名が初期値として指定されているものもあります。
私のソフトでもそのようにしたいのですが、色々な部分に文字列を
入れてみて試してみても、思ったとおりの結果にはなりませんでした。
下記は上記サイトに記載されている
ファイルを保存する際のダイアログの出し方から引用したものですが、
これをどのようにしたらダイアログが開いた際にファイル名部分に
デフォルト命名された状態で開けるのでしょうか?
static OPENFILENAME ofn;
static TCHAR filename_full[MAX_PATH]; // ファイル名(フルパス)を受け取る領域
static TCHAR filename[MAX_PATH]; // ファイル名を受け取る領域
// 構造体に情報をセット
ZeroMemory( &ofn, sizeof(ofn) ); // 最初にゼロクリアしておく
ofn.lStructSize = sizeof(ofn); // 構造体のサイズ
ofn.hwndOwner = hWnd; // コモンダイアログの親ウィンドウハンドル
ofn.lpstrFilter = _T("text(*.txt)\0*.txt\0All files(*.*)\0*.*\0\0"); // ファイルの種類
ofn.lpstrFile = filename_full; // 選択されたファイル名(フルパス)を受け取る変数のアドレス
ofn.lpstrFileTitle = filename; // 選択されたファイル名を受け取る変数のアドレス
ofn.nMaxFile = sizeof(filename_full); // lpstrFileに指定した変数のサイズ
ofn.nMaxFileTitle = sizeof(filename); // lpstrFileTitleに指定した変数のサイズ
ofn.Flags = OFN_OVERWRITEPROMPT; // フラグ指定
ofn.lpstrTitle = _T("名前を付けて保存");// コモンダイアログのキャプション
ofn.lpstrDefExt = _T("txt"); // デフォルトのファイルの種類
// 名前を付けて保存コモンダイアログを作成
if( !GetOpenFileName( &ofn ) )
{
MessageBox( hWnd, _T("エラー"), _T("エラー"), MB_OK );
SendMessage( hWnd, WM_CLOSE, 0, 0 );
}
お礼
早速ご回答いただきありがとうございます。 いただいたURLのサイトを参考にして、何とか出来ました。