1. CFileDialog 사용 방법
     
CFileDialog( BOOL bOpenFileDialog,
             LPCTSTR lpszDefExt = NULL,
             LPCTSTR lpszFileName = NULL,
             DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
             LPCTSTR lpszFilter = NULL,
             CWnd* pParentWnd = NULL );

bOpenFileDialog     TRUE면 Open dialog, FALSE면 Save as dialog
lpszDefExt              기본파일확장자로 선언이 되면 해당하는 확장자를 가진 파일만 나온다.
lpszFileName         파일명 에디트 박스에 초기화될 파일명
dwFlags                  dialog box 기본 FLAG, m_ofn.Flags에 등록된다
                                OFN_NOCHANGEDIR             디렉토리변경불가
                                OFN_HIDEREADONLY            읽기전용파일은 숨김
                                OFN_OVERWRITEPROMPT   존재하는 파일 덮어쓰기전에 확인하기
                                OFN_FILEMUSTEXIST           반드시 존재하는 파일명만 입력받음
                                OFN_ALLOWMULTISELECT   다중선택가능
                                OFN_ENABLESIZING             파일열기 대화상자의 크기 조절가능
dwFlags(*1)          
lpszFilter                연속된 문자열쌍으로 파일 확장자를 원하는 타입으로 나오게 할수 있다
pParentWnd            다이얼로그 소유 윈도우 포인터

2. CFileDialog 사용예
     

    char *szFilter = "비트맵(*.bmp)|*.bmp|JPEG(*.jpg)|*.jpg||";
    CFileDialog imageSave( FALSE, NULL, m_SaveTab.GetFileName(), OFN_FILEMUSTEXIST, szFilter, NULL );
   
    // 확장자 BMP = 0, JPG = 1
    int nSelected = 1;   
    TCHAR* szExtension[2] = { ".bmp", ".jpg" };

    imageSave.m_ofn.nFilterIndex = (DWORD)nSelected;
    if( imageSave.DoModal() == IDOK ) {
        CString strFileName = imageSave.GetFileName();
        CString strFileExt = imageSave.GetFileExt();
       
        // 콤보상자에서 확장자를 선택했을 시
        if( strFileExt == "" ) {   
            // 선택된 파일 확장자의 인덱스를 가져온다.
            nSelected = (int)imageSave.m_ofn.nFilterIndex;
            // 인덱스에 맞는 확장자를 FileName에 붙인다.
            strFileName += szExtension[nSelected-1];   
        }

야이노마

» Contact Me: yainoma00@gmail.com




1