본문 바로가기
Language/MFC

[MFC] 파일 탐색기 클래스 CFileDialog 다루기

by 어발 2022. 7. 6.

MFC에서는 CFileDialog를 이용해 편리하게 파일을 저장하고 열 수 있다.

CFileDialog 생성하기

CFiledDialog의 생성자는 다음과 같다.

explicit CFileDialog(
    BOOL bOpenFileDialog,
    LPCTSTR lpszDefExt = NULL,
    LPCTSTR lpszFileName = NULL,
    DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
    LPCTSTR lpszFilter = NULL,
    CWnd* pParentWnd = NULL,
    DWORD dwSize = 0,
    BOOL bVistaStyle = TRUE)
  • bOpenFileDialog : 파일열기 및 저장모드.
    • FALSE = 저장모드
    • TRUE = 열기모드
  • lpszDefExt : 저장모드에서만 사용되며, lpszFilter의 필터값이 모든 파일(.)인 상태에서만 사용 가능.
  • lpszFileName : 탐색기창이 떳을때, "파일 이름"란에 기본적으로 채워질 파일 이름.
  • dwFlags : OPENFILENAME 구조체에 해당하는 플레그 값.
  • lpszFilter : 확장자필터를 지정할 수 있다.
  • pParentWnd : 부모 윈도우의 포인터. 부모창에서 탐색기 FileDialog를 띄워서 보여주기 때문에 지정해야한다.
  • dwSize : OPENFILENAME 구조체의 크기를 이용하여 적절한 종류의 대화상자를 결정.
  • bVistaStyle : 윈도우 비스타 스타일을 사용할지 말지.
    • FALSE : 현재 사용자 윈도우 스타일
    • TRUE : vista 스타일

확장자 필터 지정하기

확장자 필터는 크게 필터설명|필터확장자||의 구조로 지정된다.
여러개의 필터를 사용하고 싶다면, 필터설명_1|필터확장자_1-1|필터설명_2|필터확장자_2-1;필터확장자_2-2|...|필터설명_N|필터확장자_N||의 구조이다.
아래 예시를 참고

// 1. 모든 파일 필터
All Files|*.*||

// 2. 텍스트파일과 그림파일 필터
텍스트파일|*.txt;*.hwp|그림파일|*.jpg;*.png||

CFileDialog 생성하는 예시코드

CString str = _T("All Files|*.*||");
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, str, this);
dlg.DoModal();
728x90

'Language > MFC' 카테고리의 다른 글

[MFC] 콘솔창 띄우기  (2) 2023.04.13
[MFC] Visual c++ DLL 정리  (0) 2022.07.06

댓글