○ファイルダイアログ
■ファイルを開くダイアログ
▽呼び出し部分---------------------------------
char filename[256]="";
OpenFileDlg(hDlg,filename,sizeof(filename));
OutputDebugString(filename);//デバッグ出力
-----------------------------------------------
void OpenFileDlg(HWND hWnd,char*filename,int buffSize){
OPENFILENAME OpenFileName;
memset(&OpenFileName,0,sizeof(OPENFILENAME));
OpenFileName.lStructSize=sizeof(OPENFILENAME);
OpenFileName.hwndOwner = hWnd;
OpenFileName.lpstrFilter = TEXT("*.txt(テキストファイル)\0")
TEXT("*.txt\0*.html(htmlファイル)\0")
TEXT("*.html\0*.*(その他)\0*.*\0\0");
OpenFileName.nFilterIndex =0;
OpenFileName.lpstrFile = filename;
OpenFileName.nMaxFile = buffSize;
OpenFileName.lpstrTitle = "ファイルを開く";
OpenFileName.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
if(!GetOpenFileName(&OpenFileName)) filename[0]='\0';
}
■ファイルを保存ダイアログ
▽呼び出し部分---------------------------------
char filename[256]="";
SaveFileDlg(hDlg,filename,sizeof(filename));
OutputDebugString(filename);//デバッグ出力
-----------------------------------------------
void SaveFileDlg(HWND hWnd,char*filename,int buffSize){
OPENFILENAME OpenFileName;
memset(&OpenFileName,0,sizeof(OPENFILENAME));
OpenFileName.lStructSize=sizeof(OPENFILENAME);
OpenFileName.hwndOwner = hWnd;
OpenFileName.lpstrFilter = TEXT("*.txt(テキストファイル)\0")
TEXT("*.txt\0*.html(htmlファイル)\0")
TEXT("*.html\0*.*(その他)\0*.*\0\0");
OpenFileName.nFilterIndex =0;
OpenFileName.lpstrFile = filename;
OpenFileName.nMaxFile = buffSize;
OpenFileName.lpstrDefExt ="*.txt";//拡張子を入力しなかった場合のデフォルトの指定
OpenFileName.lpstrTitle = "ファイルを保存";
OpenFileName.Flags = OFN_FILEMUSTEXIST | OFN_OVERWRITEPROMPT | OFN_NOCHANGEDIR;
if(!GetSaveFileName(&OpenFileName)) filename[0]='\0';
}
▲トップページ
>
Windows と C++