#include <windows.h>
#include <memory.h>
#define FILENAMESIZE 512
#define IDM_LOAD 1
#define IDM_SAVE 2
BOOL FileCommonDialog(HWND hwnd,char *szFullPathName,int nMode)
{// szFullPathName コモンダイアログより選択されたフルパスのファイル名
// nMode IDM_LOAD : ファイルのオープン、IDM_SAVE : ファイルの保存
OPENFILENAME ofn;
BOOL b = FALSE;
lstrcpy(szFullPathName,"");
memset(&ofn,0,sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hwnd;
ofn.lpstrFilter = "テキスト(*.txt)\0*.txt\0すべて(*.*)\0*.*\0";
ofn.nFilterIndex = 1;
ofn.lpstrFile = szFullPathName;
ofn.nMaxFile = FILENAMESIZE;
ofn.lpstrDefExt = "txt";
if ( nMode == IDM_LOAD ){
ofn.lpstrTitle = "ファイルのオープン";
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
b = GetOpenFileName(&ofn);
} else if (nMode == IDM_SAVE ) {
ofn.lpstrTitle = "ファイルの保存";
ofn.Flags = OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY;
b = GetSaveFileName(&ofn);
}
return (b);
}
int WINAPI
WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
char szMessage[1024];
char szFileName[FILENAMESIZE];
if ( OpenFileDialog(NULL,szFileName) ){
wsprintf(szMessage,"'%s'が選択されました",szFileName);
} else {
wsprintf(szMessage,"キャンセルされました");
}
MessageBox(NULL,szMessage,"結果",MB_ICONINFORMATION | MB_OK);
return (0);
}
|