파일열기 공통 다이얼로그 박스

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에 파일 리스트를 출력해서 확인한다.

}