>>エクスプローラの画面を開いてから保存したいです。
>>(名前を付けて保存的な)
ファイル保存ダイアログの事ですかね?
DXライブラリには、無い機能だと思います。
WindowsAPI使えばできますけど、ある程度知識が必要ですよ。
とりあえず、下記のコードは保存ダイアログをだして、ファイルパスを取得するサンプルです。
細かいエラー処理は省略してます。保存処理も自分で実装出来ると思いますので省略してあります。
(当たり前ですけどWindows環境だけで動きます。WindowsAPI使ってるので…。)
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode(TRUE);
SetGraphMode(640, 480, 32); //画面サイズ指定
DxLib_Init(); //DxLib初期化
SetDrawScreen(DX_SCREEN_BACK); //描画先を裏画面に
OPENFILENAME OpenFile = {0};//OPENFILENAME構造体を宣言
TCHAR szPath[MAX_PATH] = { 0 };//フォルダ位置文字列宣言
TCHAR szFile[MAX_PATH] = { 0 };//選択ファイル文字列宣言
GetCurrentDirectory(MAX_PATH, szPath);//パス文字列に現在のパスを入れる(ここで指定したパスでダイアログで開く)
OpenFile.lStructSize = sizeof(OPENFILENAME);//構造体サイズ指定
OpenFile.hwndOwner = GetMainWindowHandle();//DXライブラリのウインドウハンドルを指定
OpenFile.lpstrInitialDir = szPath; // 初期フォルダ位置文字列ポインタ
OpenFile.lpstrFile = szFile; // 選択ファイル文字列ポインタ
OpenFile.nMaxFile = MAX_PATH;//パスの最大値
OpenFile.lpstrFilter = "ABCファイル(*.abc)\0*.abc\0"
"DFGファイル(*.dfg)\0*.dfg\0";//保存ファイル種類を指定できる
OpenFile.lpstrTitle = "ファイルの保存ダイアログ";//ここで指定した文字がダイアログのタイトルバーに表示されます。
OpenFile.nFilterIndex = 1;//デフォルトで指定されてる保存ファイル種類(1が一番目になる)
OpenFile.Flags = OFN_FILEMUSTEXIST;//各種フラグとりあえずこれで動くので細かいことは自分で調べて下さい
if (GetSaveFileName(&OpenFile)) {//GetSaveFileName()関数にOPENFILENAME構造体のポインタを渡すとダイアログが表示される
printfDx("ファイルパス:%s\n", szFile);//ファイルパス表示
printfDx("ファイル種類は:%d\n", OpenFile.nFilterIndex);//ダイアログ下のファイルの種類の項目でえらんだ数値(1が一番上)
}
else {
printfDx("キャンセルもしくは失敗しました。");//ユーザーがOKボタンを押す以外で終了すると「0」になるのでエラー
}
ScreenFlip();//画面更新
WaitKey();//キーを入力するまで待つ
DxLib_End() ;// DXライブラリの後始末
return 0;// ソフトの終了
}
PS.ちょっと気になった所があったので何度かコードを記事修正しました。すいません。