파일열기 공통 다이얼로그 박스
1. 파일 열기
//필터설정
Char szFilter[]=”Image File(*.bmp;*.jpg;*.tga)|*.bmp;*.jpg;*.tga|ALL File(*.*)|*.*}”;
CfileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
szFilter, NULL);
if(dlg.DoModal() == IDOK)
{
Cstring PathName = dlg.GetPathName(); // 전체 경로를 포함한 파일 이름
Cstring FileName = dlg.GetFileName(); // 파일 이름
}
2. 파일 저장
Char szFilter[] = “Text File(*.txt)|*.txt|”;
CfileDialog dlg(FALSE, “확장자”, “디폴트파일명”, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter, NULL);
If(dlg.Domodal() == IDOK)
{
Cstring PathName = dlg.GetPathName(); // 전체 경로를 포함한 파일 이름
Cstring FileName = dlg.GetFileName(); // 파일 이름
}
3. 멀티 셀렉트 파일 열기
Char szFilter[]=”Image File(*.bmp;*.jpg;*.tga)|*.bmp;*.jpg;*.tga|ALL File(*.*)|*.*}”;
CfileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT, szFilter, NULL);
//처음 선택되는 폴더 지정 방법
dlg.m_ofn.IpstrInitialDir = “C:\\WINNT”; // WINNT 폴더를 보여준다.
//셀렉트 되는 파일 목록 수를 늘릴려면 다음과 같이 해준다.
//배열의 크기가 크면 클수록 많은 수를 선택 할 수 있다.
Char strFile[4096]={0,}; //NULL 로 초기화 해줘야 정상 동작한다.
dlg.m_ofn.IpstrFile = strFile;
dlg.m_ofn.nMaxFile = sizeof(strFile);
if(dlg.DoModal() == IDOK)
{
POSITION pos=dlg.GetStartPosition();
Cstring str;
While(pos)
{
Str += dlg.GetNextpathName(pos)+”\n”; // GetNextPathName 함수로 파일 이름을 알아낸다.
}
MessageBox(str); //MessageBox에 파일 리스트를 출력해서 확인한다.
}