다음을 통해 공유


CFileDialog::CFileDialog

표준 Windows 파일 대화 상자를 생성 하려면이 함수를 호출 합니다.

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
);

매개 변수

  • [in] bOpenFileDialog
    만들기 대화 상자의 종류를 지정 하는 매개 변수입니다. 로 설정 TRUE 를 생성 하는 파일 열기 대화 상자. 로 설정 FALSE 를 생성 하는 파일에서 다른 이름으로 저장 대화 상자.

  • [in] lpszDefExt
    기본 파일 이름 확장명입니다. 사용자는 알려진된 확장 (하나는 사용자의 컴퓨터에 연결 된) 파일 이름 상자에 포함 되지 않습니다 경우 확장을 지정 하 여 lpszDefExt 파일 이름에 자동으로 추가 됩니다. 이 매개 변수가 NULL, 확장명이 추가 됩니다.

  • [in] lpszFileName
    파일 이름 상자에 표시 되는 초기 파일 이름입니다. 경우 NULL, 초기 파일 이름이 나타납니다.

  • [in] dwFlags
    사용자 지정 대화 상자를 사용할 수 있는 하나 이상의 플래그의 조합. 이러한 플래그에 대 한 자세한 내용은 파일 이름 에서 구조체는 Windows SDK. 수정 하는 경우는 m_ofn.Flags 구조체 멤버를 변경 내용을 비트 OR 연산자를 사용 하 여 기본 동작을 그대로 유지 합니다.

  • [in] lpszFilter
    일련의 필터를 지정 하는 문자열 쌍 파일에 적용할 수 있습니다. 파일 필터를 지정 하는 경우 파일 목록에서 필터 조건에 일치 하는 파일만 나타납니다. 파일 필터를 사용 하는 방법에 대 한 자세한 내용은 주의 섹션을 참조 하십시오.

  • [in] pParentWnd
    파일 대화 상자에는 부모 또는 소유자 창에 대 한 포인터입니다.

  • [in] dwSize
    크기는 OPENFILENAME 구조체입니다. 이 값은 운영 체제 버전에 따라 달라 집니다. MFC 대화 상자를 만들려면 적절 한 유형을 결정 하는 데이 매개 변수를 사용 (예를 들어, 새 Windows 2000 대화 상자 대신 NT4 대화 상자). MFC 코드는 프로그램이 실행 될 운영 체제 버전에 따라 올바른 대화 상자의 크기를 결정 합니다 0 이면 기본 크기입니다.

  • [in] bVistaStyle
    참고 이 매개 변수가 Visual Studio 2008에서 사용할 수 있는 이후 및 마법 실행 됩니다 경우에 사용할 새 스타일 대화 상자를 발생할 Windows Vista 또는 나중에.

    파일 대화 상자의 스타일을 지정 하는 매개 변수입니다. 로 설정 TRUE 새 Vista 스타일 파일 대화 상자를 사용 합니다. 그렇지 않으면 이전 스타일 대화 상자를 사용할 것입니다. 자세한 내용은 주의 섹션에서 Vista를 실행에 대 한 참조 하십시오.

설명

중 하나는 파일 열기 또는 파일에서 다른 이름으로 저장 대화 상자 생성 한 값에 따라 bOpenFileDialog.

사용 하 여 기본 확장명 지정 lpszDefExt 거의 어떤 사용자의 컴퓨터에 파일 연결 확장명이 예측할 수 있기 때문에 예상 하는 문제를 발생할 수 있습니다. 더 자세히 제어는 기본 확장명을 추가 해야 하는 경우 사용자 지정 클래스를 파생 시킬 수 있습니다 CFileDialog, 재정의 된 CFileDialog::OnFileNameOK 고유 확장 처리를 수행 하는 메서드.

여러 파일을 선택할 수 있게 하려면 설정에서 OFN_ALLOWMULTISELECT 플래그를 호출 하기 전에 DoModal. 파일 이름 여러 개 반환 된 목록을 저장 하려면 자신의 파일 이름 버퍼를 제공 해야 합니다. 이렇게 바꾸어 m_ofn.lpstrFile 생성 후 버퍼에 대 한 포인터와 사용자를 할당는 CFileDialog를 호출 하기 전에 DoModal. 또한 설정 해야 m_ofn.nMaxFile 가 가리키는 버퍼에 있는 문자 수가 m_ofn.lpstrFile. 선택 파일의 최대 개수를 설정 하는 경우 n, 필요한 버퍼 크기는 n*(_MAX_PATH + 1) + 1. 예를 들면 다음과 같습니다.

#define MAX_CFileDialog_FILE_COUNT 99
#define FILE_LIST_BUFFER_SIZE ((MAX_CFileDialog_FILE_COUNT * (MAX_PATH + 1)) + 1)

CString fileName;
wchar_t* p = fileName.GetBuffer( FILE_LIST_BUFFER_SIZE );
CFileDialog dlgFile(TRUE);
OPENFILENAME& ofn = dlgFile.GetOFN( );
ofn.Flags |= OFN_ALLOWMULTISELECT;
ofn.lpstrFile = p;
ofn.nMaxFile = FILE_LIST_BUFFER_SIZE;

dlgFile.DoModal();
fileName.ReleaseBuffer();

wchar_t* pBufEnd = p + FILE_LIST_BUFFER_SIZE - 2;
wchar_t* start = p;
while( ( p < pBufEnd ) && ( *p ) )
  p++;
if( p > start )
{
  _tprintf(_T("Path to folder where files were selected:  %s\r\n\r\n"), start );
  p++;

  int fileCount = 1;
  while( ( p < pBufEnd ) && ( *p ) )
  {
    start = p;
    while( ( p < pBufEnd ) && ( *p ) )
      p++;
    if( p > start )
      _tprintf(_T("%2d. %s\r\n"), fileCount, start );
    p++;
    fileCount++;
  }
}

탐색기 스타일 대화 상자는 마우스 또는 키보드를 사용 하 여 크기를 조정할 수 있도록 설정 된 OFN_ENABLESIZING 플래그입니다. 이 플래그를 설정 하는 후크 프로시저 또는 사용자 지정 서식 파일을 제공 하는 경우 필요 합니다. 플래그는 탐색기 스타일 대화 상자 에서만 작동합니다. 구형 대화 상자 크기를 조정할 수 없습니다.

lpszFilter 매개 변수를 사용 하 여 파일 목록에 표시할 파일 있어야 하는 파일 이름 형식을 결정 합니다. 필터를 문자열 쌍에서 첫 번째 문자열을 나타냅니다. 두 번째 문자열 사용 하 여 파일 이름 확장명을 나타냅니다. 구분 기호로 세미콜론 (';' 문자)를 사용 하 여 여러 개의 확장명을 지정할 수 있습니다. 두 문자열을 끝나는 ' |' 문자 뒤에 있는 NULL 문자. 또한 사용할 수 있습니다는 CString 개체를이 매개 변수에 대 한.

예를 들어, Microsoft Excel 확장.xlc (차트의 경우) 또는 (워크시트).xls 파일을 열 수 있는 사용자 중 일부 있습니다. 으로 Excel에 대 한 필터를 작성할 수 있습니다.

static TCHAR BASED_CODE szFilter[] = _T("Chart Files (*.xlc)|*.xlc|")
   _T("Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|")
   _T("*.xlc; *.xls|All Files (*.*)|*.*||");

그러나이 문자열을 직접 사용 하는 경우 업데이트는 OPENFILENAME 구조를 '\0', 세로 막대 대신 null 문자를 문자열을 구분 합니다 ('| ').

bVistaStyle 매개 변수에서 실행 경우에 해당입니다 Windows Vista. 이전 버전의 Windows에서이 매개 변수는 무시 됩니다. 경우 bVistaStyle 로 설정 된 TRUE, 프로그램을 컴파일하는 경우 Visual Studio 2008 또는 나중에 새 Vista 스타일 파일 대화 상자 사용 됩니다. 그렇지 않으면 이전 MFC 스타일 파일 대화 상자 사용 됩니다. 자세한 내용은 CFileDialog 클래스를 참조하십시오.

대화 상자 템플릿은 기반으로 하는 대화 상자에서 지원 되지 않습니다.bVistaStyle

예제

예를 들어 참조 하십시오 CFileDialog::DoModal.

요구 사항

Header:afxdlgs.h

참고 항목

참조

CFileDialog 클래스

계층 구조 차트

CFileDialog::DoModal

GetOpenFileName

GetSaveFileName

OPENFILENAME