○ファイルダイアログ

■ファイルを開くダイアログ



▽呼び出し部分---------------------------------
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++