CFileDialog 클래스

파일 열기 또는 파일 저장 작업에 사용되는 일반적인 대화 상자를 캡슐화합니다.

구문

class CFileDialog : public CCommonDialog

멤버

공용 생성자

속성 설명
CFileDialog::CFileDialog CFileDialog 개체를 생성합니다.

공용 메서드

이름 설명
CFileDialog::AddCheckButton 대화 상자에 검사 단추를 추가합니다.
CFileDialog::AddComboBox 대화 상자에 콤보 상자를 추가합니다.
CFileDialog::AddControlItem 대화 상자의 컨테이너 컨트롤에 항목을 추가합니다.
CFileDialog::AddEditBox 대화 상자에 편집 상자를 추가합니다.
CFileDialog::AddMenu 대화 상자에 메뉴를 추가합니다.
CFileDialog::AddPlace 오버로드됨. 사용자가 항목을 열거나 저장할 수 있는 위치 목록에 폴더를 추가합니다.
CFileDialog::AddPushButton 대화 상자에 단추를 추가합니다.
CFileDialog::AddRadioButtonList 대화 상자에 옵션 단추(라디오 단추라고도 함) 그룹을 추가합니다.
CFileDialog::AddSeparator 대화 상자에 구분 기호를 추가합니다.
CFileDialog::AddText 대화 상자에 텍스트 콘텐츠를 추가합니다.
CFileDialog::ApplyOFNToShellDialog 멤버 변수에 저장된 m_ofn 매개 변수 및 플래그와 일치하는 상태를 CFileDialog 업데이트.
CFileDialog::D oModal 대화 상자를 표시하고 사용자가 선택할 수 있도록 합니다.
CFileDialog::EnableOpenDropDown 대화 상자의 열기 또는 저장 단추에서 드롭다운 목록을 사용하도록 설정합니다.
CFileDialog::EndVisualGroup 대화 상자에서 시각적 개체 그룹에 요소 추가를 중지합니다.
CFileDialog::GetCheckButtonState 대화 상자에서 검사 단추(검사 상자)의 현재 상태를 가져옵니다.
CFileDialog::GetControlItemState 대화 상자에 있는 컨테이너 컨트롤에 있는 항목의 현재 상태를 가져옵니다.
CFileDialog::GetControlState 지정된 컨트롤의 현재 표시 유형 및 사용 상태를 가져옵니다.
CFileDialog::GetEditBoxText 편집 상자 컨트롤의 현재 텍스트를 가져옵니다.
CFileDialog::GetFileExt 선택한 파일의 확장자를 반환합니다.
CFileDialog::GetFileName 선택한 파일의 파일 이름을 반환합니다.
CFileDialog::GetFileTitle 선택한 파일의 제목을 반환합니다.
CFileDialog::GetFolderPath 탐색기 스타일 열기 또는 다른 이름으로 저장 일반 대화 상자의 현재 열려 있는 폴더 또는 디렉터리의 경로를 검색합니다.
CFileDialog::GetIFileDialogCustomize 사용자 지정된 CFileDialog 개체에 대한 내부 COM 개체를 검색합니다.
CFileDialog::GetIFileOpenDialog 파일 열기 대화 상자로 사용되는 내부 COM 개체 CFileDialog검색합니다.
CFileDialog::GetIFileSaveDialog 파일 저장 대화 상자로 사용되는 내부 COM 개체 CFileDialog검색 합니다.
CFileDialog::GetNextPathName 선택한 다음 파일의 전체 경로를 반환합니다.
CFileDialog::GetOFN 개체의 OPENFILENAME 구조를 검색 CFileDialog 합니다.
CFileDialog::GetPathName 선택한 파일의 전체 경로를 반환합니다.
CFileDialog::GetReadOnlyPref 선택한 파일의 읽기 전용 상태 반환합니다.
CFileDialog::GetResult 대화 상자에서 사용자가 선택한 항목을 가져옵니다.
CFileDialog::GetResults 여러 항목을 선택할 수 있는 대화 상자에서 사용자의 선택을 가져옵니다.
CFileDialog::GetSelectedControlItem 대화 상자의 지정된 컨테이너 컨트롤에서 특정 항목을 가져옵니다.
CFileDialog::GetStartPosition 파일 이름 목록의 첫 번째 요소 위치를 반환합니다.
CFileDialog::HideControl 탐색기 스타일 열기 또는 다른 이름으로 저장 일반 대화 상자에서 지정된 컨트롤을 숨깁니다.
CFileDialog::IsPickFoldersMode 폴더 선택 모드에서 현재 대화 상자가 있는지 여부를 확인합니다.
CFileDialog::MakeProminent 추가된 다른 컨트롤과 비교하여 눈에 띄는 컨트롤을 대화 상자에 배치합니다.
CFileDialog::RemoveControlItem 대화 상자의 컨테이너 컨트롤에서 항목을 제거합니다.
CFileDialog::SetCheckButtonState 대화 상자에서 검사 단추(검사 상자)의 현재 상태를 설정합니다.
CFileDialog::SetControlItemState 대화 상자에 있는 컨테이너 컨트롤에 있는 항목의 현재 상태를 설정합니다.
CFileDialog::SetControlItemText 컨트롤 항목의 텍스트를 설정합니다. 예를 들어 라디오 단추 또는 메뉴의 항목과 함께 제공되는 텍스트입니다.
CFileDialog::SetControlLabel 단추 텍스트 또는 편집 상자 레이블과 같이 컨트롤과 연결된 텍스트를 설정합니다.
CFileDialog::SetControlState 지정된 컨트롤의 현재 표시 유형 및 사용 상태를 설정합니다.
CFileDialog::SetControlText 탐색기 스타일 열기 또는 다른 이름으로 저장 일반 대화 상자에서 지정된 컨트롤의 텍스트를 설정합니다.
CFileDialog::SetDefExt 탐색기 스타일 열기 또는 다른 이름으로 저장 일반 대화 상자의 기본 파일 이름 확장명을 설정합니다.
CFileDialog::SetEditBoxText 편집 상자 컨트롤의 현재 텍스트를 설정합니다.
CFileDialog::SetProperties 저장 중인 항목에 사용할 기본값을 정의하는 속성 저장소를 제공합니다.
CFileDialog::SetSelectedControlItem 옵션 단추 그룹 또는 대화 상자에 있는 콤보 상자에서 특정 항목의 선택한 상태를 설정합니다.
CFileDialog::SetTemplate 개체에 대한 대화 상자 템플릿을 CFileDialog 설정합니다.
CFileDialog::StartVisualGroup 대화 상자에서 시각적 개체 그룹을 선언합니다. "add" 메서드에 대한 후속 호출은 해당 요소를 이 그룹에 추가합니다.
CFileDialog::UpdateOFNFromShellDialog 멤버 변수에 m_ofn 저장된 데이터를 파일 대화 상자의 현재 상태와 일치하도록 업데이트.

보호된 메서드

속성 설명
CFileDialog::OnButtonClicked 단추를 클릭할 때 호출됩니다.
CFileDialog::OnCheckButtonToggled 검사 상자가 검사/해제검사 때 호출됩니다.
CFileDialog::OnControlActivating 컨트롤이 활성 상태일 때 호출됩니다.
CFileDialog::OnFileNameChange WM_NOTIFY CDN_SELCHANGE 메시지를 처리합니다.
CFileDialog::OnFileNameOK 대화 상자에 입력한 파일 이름의 유효성을 검사합니다.
CFileDialog::OnFolderChange WM_NOTIFY CDN_FOLDERCHANGE 메시지를 처리합니다.
CFileDialog::OnInitDone WM_NOTIFY CDN_INITDONE 메시지를 처리합니다.
CFileDialog::OnItemSelected 컨테이너 항목을 선택할 때 호출됩니다.
CFileDialog::OnLBSelChangedNotify 파일 선택이 변경되면 사용자 지정 작업을 수행할 수 있습니다.
CFileDialog::OnShareViolation 공유 위반을 처리합니다.
CFileDialog::OnTypeChange WM_NOTIFY CDN_TYPECHANGE 메시지를 처리합니다.

공용 데이터 멤버

이름 설명
CFileDialog::m_ofn Windows OPENFILENAME 구조체입니다. 기본 파일 대화 상자 매개 변수에 대한 액세스를 제공합니다.

설명

일반적인 파일 대화 상자를 사용하면 Windows 표준과 일치하는 방식으로 파일 선택 대화 상자(예: 파일 열기 및 다른 이름으로 저장)를 구현할 수 있습니다.

제공된 생성자와 마찬가지로 사용 CFileDialog 하거나 필요에 맞게 생성자에서 CFileDialog 사용자 고유의 대화 상자 클래스를 파생시키고 생성자를 작성할 수 있습니다. 두 경우 모두 이러한 대화 상자는 CCommonDialog 클래스에서 파생되므로 표준 MFC 대화 상자처럼 동작합니다. CFileDialog 는 Windows에 포함된 COMMDLG.DLL 파일을 사용합니다.

Windows Vista 이상의 모양과 기능은 CFileDialog 이전 버전의 Windows와 다릅니다. 프로그램이 컴파일되어 Windows Vista 이상에서 실행되는 경우 기본값 CFileDialog 은 코드 변경 없이 새 Windows Vista 이상 스타일을 자동으로 사용합니다. 생성자의 bVistaStyle 매개 변수를 사용하여 이 자동 업데이트를 수동으로 재정의합니다. 자동 업데이트에 대한 예외는 사용자 지정된 대화 상자입니다. 새 스타일로 변환되지 않습니다. 생성자에 대한 자세한 내용은 CFileDialog::CFileDialog를 참조하세요.

참고 항목

컨트롤 ID 시스템은 Windows Vista 이상 버전에서 이전 버전의 Windows CFileDialog와 다릅니다. 이전 버전의 Windows에서 프로젝트를 이식하려면 먼저 코드의 컨트롤에 대한 모든 참조 CFileDialog 를 업데이트해야 합니다.

일부 CFileDialog 메서드는 Windows Vista 이상에서 지원되지 않습니다. 메서드가 지원되는지 여부에 대한 자세한 내용은 개별 메서드 항목을 확인합니다. 또한 다음 상속된 함수는 Windows Vista 이상에서 지원되지 않습니다.

클래스의 CFileDialog Windows 메시지는 사용 중인 운영 체제에 따라 달라집니다. 예를 들어 Windows XP는 클래스에 대해 CDialog::OnCancelCDialog::OnOKCFileDialog 지원하지 않습니다. 그러나 Windows Vista 이상 운영 체제는 이를 지원합니다. 생성된 다양한 메시지와 메시지가 수신되는 순서에 대한 자세한 내용은 CFileDialog 샘플: 로깅 이벤트 순서를 참조 하세요.

개체를 CFileDialog 사용하려면 먼저 생성자를 사용하여 개체를 CFileDialog 만듭니다. 대화 상자가 생성된 후 CFileDialog::m_ofn 구조체의 값을 설정하거나 수정하여 대화 상자 컨트롤의 값 또는 상태를 초기화할 수 있습니다. 구조체 m_ofn 는 형식 OPENFILENAME입니다. 자세한 내용은 Windows SDK의 OPENFILENAME 구조를 참조하세요.

대화 상자 컨트롤을 초기화한 후 CFileDialog::D oModal 메서드를 호출하여 사용자가 경로 및 파일 이름을 입력할 수 있도록 대화 상자를 표시합니다. DoModal 는 사용자가 확인(IDOK) 또는 취소(IDCANCEL) 단추를 클릭했는지 여부를 반환합니다. IDOK를 반환하는 경우 DoModal 공용 멤버 함수 중 CFileDialog 하나를 사용하여 사용자가 입력한 정보를 검색할 수 있습니다.

참고 항목

Windows Vista 이상에서 IFileDialog::SetFileTypes를 여러 차례 호출하면 오류가 발생합니다 . 인스턴스 CFileDialogSetFileTypes 대한 두 번째 호출은 Windows Vista 이상에서 E_UNEXPECTED 반환합니다. 일부 CFileDialog 메서드 함수는 .를 호출 SetFileTypes합니다. 예를 들어 동일한 인스턴스에 CFileDialog::DoModal 대한 두 개의 호출은 ASSERTCFileDialog 생성합니다.

CFileDialog 에는 공유 위반, 파일 이름 유효성 검사 및 목록 상자 변경 알림의 사용자 지정 처리를 수행할 수 있는 보호된 여러 멤버가 포함되어 있습니다. 이러한 보호된 멤버는 기본 처리가 자동으로 수행되므로 대부분의 애플리케이션에서 사용할 필요가 없는 콜백 함수입니다. 이러한 함수에 대한 메시지 맵 항목은 표준 가상 함수이므로 필요하지 않습니다.

Windows CommDlgExtendedError 함수를 사용하여 대화 상자를 초기화하는 동안 오류가 발생했는지 여부를 확인하고 오류에 대해 자세히 알아볼 수 있습니다.

개체의 CFileDialog 소멸은 자동으로 처리됩니다. CDialog::EndDialog를 호출할 필요가 없습니다.

사용자가 여러 파일을 선택할 수 있도록 하려면 호출 DoModal하기 전에 OFN_ALLOWMULTISELECT 플래그를 설정합니다. 반환된 여러 파일 이름 목록을 수용하려면 사용자 고유의 파일 이름 버퍼를 제공해야 합니다. 호출하기 전에 DoModal할당CFileDialog한 버퍼에 대한 포인터로 바꿔 m_ofn.lpstrFile 서 이 작업을 수행합니다.

또한 로 가리키는 m_ofn.lpstrFile버퍼의 문자 수를 사용하여 설정 m_ofn.nMaxFile 해야 합니다. 선택할 n최대 파일 수를 설정하는 경우 필요한 버퍼 크기는 다음과 입니다 n * (_MAX_PATH + 1) + 1. 버퍼에서 반환된 첫 번째 항목은 파일이 선택된 폴더의 경로입니다. Windows Vista 또는 이후 스타일 대화 상자의 경우 디렉터리 및 파일 이름 문자열은 null로 종료되고 마지막 파일 이름 뒤의 추가 null 문자가 있습니다. 이 형식을 사용하면 탐색기 스타일 대화 상자에서 공백이 포함된 긴 파일 이름을 반환할 수 있습니다. 이전 스타일 대화 상자의 경우 디렉터리 및 파일 이름 문자열은 공백으로 구분되고 함수는 공백이 있는 파일 이름에 짧은 파일 이름을 사용합니다.

다음 예제에서는 버퍼를 사용하여 여러 파일 이름을 검색하고 나열하는 방법을 보여 줍니다.

#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++;
  }
}

여러 파일 이름을 선택하는 사용자에 대한 응답으로 버퍼 크기를 변경하려면 CFileDialog::OnFileNameChange 메서드에서 CFileDialog 새 클래스를 파생시키고 재정의해야 합니다.

새 클래스 CFileDialog를 파생하는 경우 메시지 맵을 사용하여 메시지를 처리할 수 있습니다. 기본 메시지 처리를 확장하려면 클래스를 파생시키고, 새 클래스 CFileDialog에 메시지 맵을 추가하고, 새 메시지에 대한 멤버 함수를 제공합니다. 대화 상자를 사용자 지정하기 위해 후크 함수를 제공할 필요가 없습니다.

대화 상자를 사용자 지정하려면 클래스를 CFileDialog파생시키고, 사용자 지정 대화 상자 템플릿을 제공하고, 메시지 맵을 추가하여 확장된 컨트롤에서 알림 메시지를 처리합니다. 처리되지 않은 메시지를 기본 클래스에 전달합니다. 후크 함수를 사용자 지정할 필요가 없습니다.

Windows Vista 이상 스타일을 CFileDialog사용하는 경우 메시지 맵 및 대화 상자 템플릿을 사용할 수 없습니다. 대신 유사한 기능에 COM 인터페이스를 사용해야 합니다.

사용 CFileDialog방법에 대한 자세한 내용은 일반 대화 상자 클래스를 참조 하세요.

상속 계층 구조

CObject

CCmdTarget

CWnd

Cdialog

CCommonDialog

CFileDialog

요구 사항

헤더: afxdlgs.h

CFileDialog::AddCheckButton

대화 상자에 검사 단추를 추가합니다.

HRESULT AddCheckButton(
    DWORD dwIDCtl,
    const CString& strLabel,
    BOOL bChecked);

매개 변수

dwIDCtl
추가할 검사 단추의 ID입니다.

strLabel
검사 단추 이름입니다.

bChecked
검사 단추의 현재 상태를 나타내는 부울입니다. true이면 검사; FALSE이면 FALSE입니다.

설명

CFileDialog::AddComboBox

대화 상자에 콤보 상자를 추가합니다.

HRESULT AddComboBox(DWORD dwIDCtl);

매개 변수

dwIDCtl
추가할 콤보 상자의 ID입니다.

설명

CFileDialog::AddControlItem

대화 상자의 컨테이너 컨트롤에 항목을 추가합니다.

HRESULT AddControlItem(
    DWORD dwIDCtl,
    DWORD dwIDItem,
    const CString& strLabel);

매개 변수

dwIDCtl
항목을 추가할 컨테이너 컨트롤의 ID입니다.

dwIDItem
항목의 ID입니다.

strLabel
항목의 텍스트입니다.

설명

CFileDialog::AddEditBox

대화 상자에 편집 상자를 추가합니다.

HRESULT AddEditBox(
    DWORD dwIDCtl,
    const CString& strText);

매개 변수

dwIDCtl
추가할 편집 상자의 ID입니다.

strText
편집 상자 이름입니다.

설명

CFileDialog::AddMenu

대화 상자에 메뉴를 추가합니다.

HRESULT AddMenu(
    DWORD dwIDCtl,
    const CString& strLabel);

매개 변수

dwIDCtl
추가할 메뉴의 ID입니다.

strLabel
메뉴 이름입니다.

설명

CFileDialog::AddPlace

사용자가 항목을 열거나 저장할 수 있는 위치 목록에 폴더를 추가합니다.

void AddPlace(
    LPCWSTR lpszFolder,
    FDAP fdap = FDAP_TOP) throw();

void AddPlace(
    IShellItem* psi,
    FDAP fdap = FDAP_TOP) throw();

매개 변수

lpszFolder
사용자가 사용할 수 있는 폴더의 경로입니다. 이 폴더는 폴더일 수 있습니다.

fdap
폴더가 목록 내에 배치되는 위치를 지정합니다.

Psi
사용자가 사용할 수 있는 폴더를 나타내는 IShellItem에 대한 포인터입니다. 이 폴더는 폴더일 수 있습니다.

설명

CFileDialog::AddPushButton

대화 상자에 단추를 추가합니다.

HRESULT AddPushButton(
    DWORD dwIDCtl,
    const CString& strLabel);

매개 변수

dwIDCtl
추가할 단추의 ID입니다.

strLabel
단추 이름입니다.

설명

CFileDialog::AddRadioButtonList

대화 상자에 옵션 단추(라디오 단추라고도 함) 그룹을 추가합니다.

HRESULT AddRadioButtonList(DWORD dwIDCtl);

매개 변수

dwIDCtl
추가할 옵션 단추 그룹의 ID입니다.

설명

CFileDialog::AddSeparator

대화 상자에 구분 기호를 추가합니다.

HRESULT AddSeparator(DWORD dwIDCtl);

매개 변수

dwIDCtl
구분 기호 추가의 ID입니다.

설명

CFileDialog::AddText

대화 상자에 텍스트를 추가합니다.

HRESULT AddText(
    DWORD dwIDCtl,
    const CString& strText);

매개 변수

dwIDCtl
추가할 텍스트의 ID입니다.

strText
텍스트 이름입니다.

설명

CFileDialog::ApplyOFNToShellDialog

의 현재 상태를 업데이트데이터 구조에 저장된 m_ofn 값을 기반으로 하는 CFileDialog입니다.

void ApplyOFNToShellDialog();

설명

Windows Vista 이전의 Windows 버전에서는 멤버 OPENFILENAME 데이터 구조가 계속 상태 CFileDialog와 동기화되었습니다. m_ofn 멤버 변수의 변경 내용은 대화 상자의 상태에 즉시 반영되었습니다. 또한 대화 상자의 상태를 변경하면 멤버 변수가 즉시 업데이트됩니다 m_ofn .

Windows Vista 이상에서는 멤버 변수 및 상태의 CFileDialogm_ofn 이 동기화되지 않습니다. 이 함수는 구조와 일치하도록 업데이트할 상태를 CFileDialog 강제로 적용합니다 m_ofn . Windows는 CFileDialog::D oModal 중에 이 함수를 자동으로 호출합니다.

Windows Vista 이상에서 클래스를 사용하는 CFileDialog 방법에 대한 자세한 내용은 CFileDialog 클래스를 참조 하세요.

예시

CFileDialog::UpdateOFNFromShellDialog에 대한 예제를 참조하세요.

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

매개 변수

bOpenFileDialog
[in] 만들 대화 상자의 유형을 지정하는 매개 변수입니다. 파일 열기 대화 상자를 생성하려면 TRUE로 설정합니다. 파일 다른 이름으로 저장 대화 상자를 생성 하려면 FALSE로 설정합니다.

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

lpszFileName
[in] 파일 이름 상자에 표시되는 초기 파일 이름입니다. NULL이면 초기 파일 이름이 나타나지 않습니다.

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

lpszFilter
[in] 파일에 적용할 수 있는 필터를 지정하는 일련의 문자열 쌍입니다. 파일 필터를 지정하면 필터 조건과 일치하는 파일만 파일 목록에 표시됩니다. 파일 필터를 사용하는 방법에 대한 자세한 내용은 설명 섹션을 참조하세요.

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

dwSize
[in] 구조체의 크기입니다 OPENFILENAME . 이 값은 운영 체제 버전에 따라 달라집니다. MFC는 이 매개 변수를 사용하여 만들 대화 상자의 종류를 결정했습니다. 기본 크기가 0이면 MFC 코드에서 프로그램이 실행되는 운영 체제 버전에 따라 사용할 올바른 대화 상자 크기를 결정합니다.

bVistaStyle
[in] 참고 이 매개 변수는 Visual Studio 2008 이상에서 사용할 수 있으며 Windows Vista 이상에서 실행하는 경우에만 새 스타일 대화 상자가 사용됩니다.

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

설명

bOpenFileDialog의 값에 따라 파일 열기 또는 다른 이름으로 파일 저장 대화 상자가 생성됩니다.

lpszDefExt를 사용하여 기본 확장을 지정해도 사용자의 컴퓨터에 파일 연결이 있는 확장명은 거의 예측할 수 없으므로 예상한 동작이 생성되지 않을 수 있습니다. 기본 확장의 추가에 대한 더 많은 제어가 필요한 경우 고유한 클래스를 CFileDialog파생시키고 메서드를 재정 CFileDialog::OnFileNameOK 의하여 고유한 확장 처리를 수행할 수 있습니다.

사용자가 여러 파일을 선택할 수 있도록 하려면 DoModal을 호출하기 전에 OFN_ALLOWMULTISELECT 플래그를 설정합니다. 반환된 여러 파일 이름 목록을 저장하려면 사용자 고유의 파일 이름 버퍼를 제공해야 합니다. CFileDialog를 생성한 후 호출DoModal하기 전에 할당한 버퍼에 대한 포인터로 바꿔 m_ofn.lpstrFile 서 이 작업을 수행합니다. 또한 버퍼에서 가리키는 m_ofn.lpstrFile문자 수로 설정 m_ofn.nMaxFile 해야 합니다. 선택할 최대 파일 수를 n으로 설정하면 필요한 버퍼 크기는 *(_MAX_PATH + 1) + 1입니다n. 예시:

#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 하려는 경우 문자열을 세로 막대('|')가 아닌 null 문자'\0'로 구분해야 합니다.

bVistaStyle 매개 변수는 Windows Vista 이상에서 실행되는 경우에만 적용됩니다. 이전 버전의 Windows에서는 이 매개 변수가 무시됩니다. bVistaStyle이 TRUE로 설정된 경우 Visual Studio 2008 이상을 사용하여 프로그램을 컴파일할 때 새 Vista 스타일 파일 대화 상자가 사용됩니다. 그렇지 않으면 이전 MFC 스타일 파일 대화 상자 가 사용됩니다.

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

예시

CFileDialog::D oModal에 대한 예제를 참조하세요.

CFileDialog::D oModal

이 함수를 호출하여 Windows 일반 파일 대화 상자를 표시하고 사용자가 파일 및 디렉터리를 찾아 파일 이름을 입력할 수 있도록 합니다.

virtual INT_PTR DoModal();

Return Value

IDOK 또는 IDCANCEL. IDCANCEL이 반환되면 Windows CommDlgExtendedError 함수를 호출하여 오류가 발생했는지 여부를 확인합니다.

IDOK 및 IDCANCEL은 사용자가 확인 또는 취소 단추를 선택했는지 여부를 나타내는 상수입니다.

설명

구조체의 m_ofn 멤버를 설정하여 다양한 파일 대화 상자 옵션을 초기화하려면 호출 DoModal하기 전에 이 작업을 수행해야 하지만 대화 상자 개체가 생성된 후에는 이 작업을 수행해야 합니다.

예를 들어 사용자가 여러 파일을 선택할 수 있도록 하려면 이 항목의 코드 예제와 같이 호출 DoModal하기 전에 OFN_ALLOWMULTISELECT 플래그를 설정합니다.

사용자가 대화 상자의 확인 또는 취소 단추를 클릭하거나 대화 상자의 컨트롤 메뉴에서 닫기 옵션을 선택하면 컨트롤이 애플리케이션에 반환됩니다. 그런 다음 다른 멤버 함수를 호출하여 사용자가 대화 상자에 입력한 설정 또는 정보를 검색할 수 있습니다.

DoModal 는 클래스 CDialog에서 재정의된 가상 함수입니다.

예시

void CMyClass::OnFileOpen()
{
   // szFilters is a text string that includes two file name filters:
   // "*.my" for "MyType Files" and "*.*' for "All Files."
   TCHAR szFilters[]= _T("MyType Files (*.my)|*.my|All Files (*.*)|*.*||");

   // Create an Open dialog; the default file name extension is ".my".
   CFileDialog fileDlg(TRUE, _T("my"), _T("*.my"),
      OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, szFilters);
   
   // Display the file dialog. When user clicks OK, fileDlg.DoModal() 
   // returns IDOK.
   if(fileDlg.DoModal() == IDOK)
   {
      CString pathName = fileDlg.GetPathName();
   
      // Implement opening and reading file in here.

      //Change the window's title to the opened file's title.
      CString fileName = fileDlg.GetFileTitle();
   
      SetWindowText(fileName);
   }
}

CFileDialog::EnableOpenDropDown

대화 상자의 열기 또는 저장 단추에서 드롭다운 목록을 사용하도록 설정합니다.

HRESULT EnableOpenDropDown(DWORD dwIDCtl);

매개 변수

dwIDCtl
드롭다운 목록의 ID입니다.

설명

CFileDialog::EndVisualGroup

대화 상자에서 시각적 개체 그룹에 요소 추가를 중지합니다.

HRESULT EndVisualGroup();

Return Value

성공하면 S_OK 반환합니다. 그렇지 않으면 오류 값입니다.

설명

CFileDialog::GetCheckButtonState

대화 상자에서 검사 단추(검사 상자)의 현재 상태를 검색합니다.

HRESULT GetCheckButtonState(
    DWORD dwIDCtl,
    BOOL& bChecked);

매개 변수

dwIDCtl
검사 상자의 ID입니다.

bChecked
검사 상자의 상태입니다. TRUE는 검사;을 나타냅니다. FALSE는 검사 나타냅니다.

설명

CFileDialog::GetControlItemState

대화 상자에 있는 컨테이너 컨트롤에 있는 항목의 현재 상태를 검색합니다.

HRESULT GetControlItemState(
    DWORD dwIDCtl,
    DWORD dwIDItem,
    CDCONTROLSTATEF& dwState);

매개 변수

dwIDCtl
컨테이너 컨트롤의 ID입니다.

dwIDItem
항목의 ID입니다.

dwState
컨트롤의 현재 상태를 나타내는 CDCONTROLSTATE 열거형에서 더 많은 값 중 하나를 수신하는 변수에 대한 참조입니다.

설명

CFileDialog::GetControlState

지정된 컨트롤의 현재 표시 유형 및 사용 상태를 검색합니다.

HRESULT GetControlState(
    DWORD dwIDCtl,
    CDCONTROLSTATEF& dwState);

매개 변수

dwIDCtl
컨트롤의 ID입니다.

dwState
컨트롤의 현재 상태를 나타내는 CDCONTROLSTATE 열거형에서 하나 이상의 값을 받는 변수에 대한 참조입니다.

설명

CFileDialog::GetEditBoxText

편집 상자 컨트롤에서 현재 텍스트를 검색합니다.

HRESULT GetEditBoxText(
    DWORD dwIDCtl,
    CString& strText);

매개 변수

dwIDCtl
편집 상자의 ID입니다.

strText
텍스트 값입니다.

설명

CFileDialog::GetFileExt

이 함수를 호출하여 대화 상자에 입력한 파일 이름의 확장자를 검색합니다.

CString GetFileExt() const;

Return Value

파일 이름의 확장명입니다.

설명

예를 들어 입력한 파일의 이름이 DATA.TXT이면 "TXT GetFileExt "를 반환합니다.

OFN_ALLOWMULTISELECT 플래그가 설정된 경우 m_ofn.Flags 이 문자열에는 null로 끝나는 문자열 시퀀스가 포함되며, 첫 번째 문자열은 선택한 파일 그룹의 디렉터리 경로와 사용자가 선택한 모든 파일의 이름입니다. 파일 경로 이름을 검색하려면 GetStartPosition 및 GetNextPathName 멤버 함수를 사용합니다.

CFileDialog::GetFileName

이 함수를 호출하여 대화 상자에 입력한 파일 이름의 이름을 검색합니다.

CString GetFileName() const;

Return Value

파일 이름입니다.

설명

파일 이름에는 접두사 및 확장명을 모두 포함합니다. 예를 들어 GetFileName "TEXT"를 반환합니다. 파일 C:\FILES\TEXT.DAT에 대한 DAT"입니다.

플래그가 설정된 경우 m_ofn.Flags GetStartPositionGetNextPathName을 호출하여 파일 경로 이름을 검색해야 OFN_ALLOWMULTISELECT 합니다.

CFileDialog::GetFileTitle

이 함수를 호출하여 대화 상자에 입력한 파일의 제목을 검색합니다.

CString GetFileTitle() const;

Return Value

파일의 제목입니다.

설명

파일의 제목에는 경로나 확장명은 없는 접두사만 포함됩니다. 예를 들어 GetFileTitle C:\FILES\TEXT.DAT 파일에 대해 "TEXT"를 반환합니다.

OFN_ALLOWMULTISELECT 플래그가 설정된 경우 m_ofn.Flags 이 문자열에는 null로 끝나는 문자열 시퀀스가 포함되며, 첫 번째 문자열은 선택한 파일 그룹의 디렉터리 경로와 사용자가 선택한 모든 파일의 이름입니다. 이러한 이유로 GetStartPositionGetNextPathName 멤버 함수를 사용하여 목록에서 다음 파일 이름을 검색합니다.

예시

CFileDialog::D oModal에 대한 예제를 참조하세요.

CFileDialog::GetFolderPath

이 멤버 함수를 호출하여 탐색기 스타일 열기 또는 다른 이름으로 저장 일반 대화 상자의 현재 열려 있는 폴더 또는 디렉터리의 경로를 검색합니다.

CString GetFolderPath() const;

Return Value

현재 열려 있는 폴더 또는 디렉터리를 포함하는 CString 개체입니다.

설명

대화 상자는 OFN_EXPLORER 스타일로 만들어졌어야 합니다. 그렇지 않으면 어설션으로 메서드가 실패합니다.

대화 상자가 표시되는 동안에만 이 메서드를 호출할 수 있습니다. 대화 상자가 닫힌 후에는 이 함수가 더 이상 작동하지 않으며 어설션으로 메서드가 실패합니다.

CFileDialog::GetIFileDialogCustomize

지정된 CFileDialog에 대한 내부 COM 개체에 대한 포인터를 검색합니다.

IFileDialogCustomize* GetIFileDialogCustomize();

Return Value

에 대한 내부 COM 개체에 대한 포인터입니다 CFileDialog. 이 포인터를 적절하게 해제하는 것은 사용자의 책임입니다.

설명

bVistaStyleTRUE로 설정된 개체와 함께 Windows Vista 이상에서만 이 함수를 사용합니다. bVistaStyle이 FALSE일 때 이 함수를 사용하는 경우 릴리스 모드에서 NULL을 반환하고 디버그 모드에서 어설션을 throw합니다.

인터페이스에 대한 IFileDialogCustomize 자세한 내용은 IFileDialogCustomize를 참조 하세요.

예시

이 예제에서는 내부 COM 개체를 검색합니다. 이 코드 예제를 실행하려면 Windows Vista 이상에서 컴파일해야 합니다.

// Get the interface pointer
IFileDialogCustomize *customDlgPtr = m_myFileDialogPtr->GetIFileDialogCustomize();

// Make sure that it is not null
if (customDlgPtr != NULL)
{
   //
   // Perform any interface functionality here
   //

   // Release the pointer
   customDlgPtr->Release();
}

CFileDialog::GetIFileOpenDialog

지정된 CFileDialogCOM 개체에 대한 내부 COM 개체에 대한 포인터를 검색합니다.

IFileOpenDialog* GetIFileOpenDialog();

Return Value

에 대한 내부 COM 개체에 대한 포인터입니다 CFileDialog. 이 포인터를 적절하게 해제하는 것은 사용자의 책임입니다.

설명

bVistaStyleTRUE로 설정된 개체와 함께 Windows Vista 이상에서만 이 함수를 사용합니다. 이 함수는 열기 대화 상자가 아니거나 bVistaStyle이 FALSE로 설정된 경우 NULL CFileDialog 을 반환합니다. 이 마지막 경우 함수는 릴리스 모드에서만 NULL을 반환합니다. 디버그 모드에서는 어설션을 throw합니다.

인터페이스에 대한 IFileOpenDialog 자세한 내용은 IFileOpenDialog를 참조하세요.

예시

이 예제에서는 내부 COM 개체를 검색합니다. 이 코드를 실행하려면 Windows Vista 이상에서 컴파일해야 합니다.

// Get the interface pointer
IFileOpenDialog * openDlgPtr = m_myFileDialogPtr->GetIFileOpenDialog();

// Make sure that it is not null
if ( openDlgPtr != NULL )
{
    //
    // Perform any interface functionality here
    //

    // Release the pointer
    openDlgPtr->Release();
}

CFileDialog::GetIFileSaveDialog

지정된 CFileDialogCOM 개체에 대한 내부 COM 개체에 대한 포인터를 검색합니다.

IFileSaveDialog* GetIFileSaveDialog();

Return Value

에 대한 내부 COM 개체에 대한 포인터입니다 CFileDialog. 이 포인터를 적절하게 해제하는 것은 사용자의 책임입니다.

설명

bVistaStyleTRUE로 설정된 개체와 함께 Windows Vista 이상에서만 이 함수를 사용합니다. 저장 대화 상자가 아니거나 bVistaStyle이 FALSE로 설정된 경우 이 함수는 NULL CFileDialog 을 반환합니다. 이 마지막 경우 함수는 릴리스 모드에서만 NULL을 반환합니다. 디버그 모드에서는 어설션을 throw합니다.

인터페이스에 대한 IFileSaveDialog 자세한 내용은 IFileSaveDialog를 참조하세요.

예시

이 예제에서는 내부 COM 개체를 검색합니다. 이 코드 예제를 실행하려면 Windows Vista 이상에서 컴파일해야 합니다.

// Get the interface pointer
IFileSaveDialog *saveDlgPtr = m_myFileDialogPtr->GetIFileSaveDialog();

// Make sure that it is not null
if (saveDlgPtr != NULL)
{
   //
   // Perform any interface functionality here
   //

   // Release the pointer
   saveDlgPtr->Release();
}

CFileDialog::GetNextPathName

이 함수를 호출하여 대화 상자에서 선택한 그룹에서 다음 파일 이름을 검색합니다.

CString GetNextPathName(POSITION& pos) const;

매개 변수

pos
이전 GetNextPathName 또는 GetStartPosition 함수 호출에서 반환된 POSITION 값에 대한 참조입니다. 목록의 끝에 도달한 경우 NULL입니다.

Return Value

파일의 전체 경로입니다.

설명

파일 이름의 경로에는 파일 제목과 전체 디렉터리 경로가 포함됩니다. 예를 들어 GetNextPathName "C:\FILES\TEXT"를 반환합니다. 파일 C:\FILES\TEXT.DAT에 대한 DAT"입니다. 호출을 사용하여 초기 위치를 설정하는 경우 정방향 반복 루프에서 사용할 GetNextPathName 수 있습니다 GetStartPosition.

선택 영역이 하나의 파일로만 구성된 경우 해당 파일 이름이 반환됩니다.

CFileDialog::GetOFN

연결된 OPENFILENAME 구조를 검색합니다.

const OPENFILENAME& GetOFN() const;

OPENFILENAME& GetOFN();

Return Value

OPENFILENAME 구조체입니다.

설명

이 함수의 두 번째 버전을 사용하여 생성된 후 멤버 함수와 함께 표시되기 전에 파일 열기 또는 파일 다른 이름으로 저장 대화 상자의 DoModal 모양을 초기화합니다. 예를 들어 대화 상자에서 lpstrTitlem_ofn 사용할 캡션 멤버를 설정할 수 있습니다.

CFileDialog::GetPathName

이 함수를 호출하여 대화 상자에 입력한 파일의 전체 경로를 검색합니다.

CString GetPathName() const;

Return Value

파일의 전체 경로입니다.

설명

파일 이름의 경로에는 파일 제목과 전체 디렉터리 경로가 포함됩니다. 예를 들어 GetPathName "C:\FILES\TEXT"를 반환합니다. 파일 C:\FILES\TEXT.DAT에 대한 DAT"입니다.

OFN_ALLOWMULTISELECT 플래그가 설정된 경우 m_ofn.Flags 이 문자열에는 null로 된 문자열 시퀀스가 포함되며, 첫 번째 문자열은 선택한 파일 그룹의 디렉터리 경로와 사용자가 선택한 모든 파일의 이름입니다. 이러한 이유로 GetStartPositionGetNextPathName 멤버 함수를 사용하여 목록에서 다음 파일 이름을 검색합니다.

예시

CFileDialog::D oModal에 대한 예제를 참조하세요.

CFileDialog::GetReadOnlyPref

이 함수를 호출하여 Windows 표준 파일 열기 및 파일 다른 이름으로 저장 대화 상자에서 읽기 전용 검사 상자가 선택되었는지 여부를 확인합니다.

BOOL GetReadOnlyPref() const;

Return Value

대화 상자에서 읽기 전용 검사 상자를 선택하면 0이 아니고, 그렇지 않으면 0입니다.

설명

생성자에서 OFN_HIDEREADONLY 스타일을 CFileDialog 설정하여 읽기 전용 검사 상자를 숨길 수 있습니다.

참고 항목

Windows Vista 이상 스타일 CFileDialog 개체는 이 함수를 지원하지 않습니다. Windows Vista 이상 스타일 CFileDialog 에서 이 함수를 사용하려고 하면 CNotSupportedException이 throw됩니다.

CFileDialog::GetResult

사용자가 대화 상자에서 선택한 항목을 검색합니다.

IShellItem* GetResult() throw();

Return Value

사용자의 선택을 나타내는 IShellItem에 대한 포인터입니다.

설명

CFileDialog::GetResults

여러 항목을 선택할 수 있는 대화 상자에서 사용자의 선택을 검색합니다.

IShellItemArray* GetResults() throw();

Return Value

대화 상자에서 선택한 항목에 액세스할 수 있는 IShellItemArray에 대한 포인터입니다.

설명

CFileDialog::GetSelectedControlItem

대화 상자의 지정된 컨테이너 컨트롤에서 특정 항목을 검색합니다.

HRESULT GetSelectedControlItem(
    DWORD dwIDCtl,
    DWORD& dwIDItem);

매개 변수

dwIDCtl
컨테이너 컨트롤의 ID입니다.

dwIDItem
사용자가 컨트롤에서 선택한 항목의 ID입니다.

설명

CFileDialog::GetStartPosition

OFN_ALLOWMULTISELECT 플래그가 설정된 경우 m_ofn.Flags 이 멤버 함수를 호출하여 목록에서 첫 번째 파일 경로 이름의 위치를 검색합니다.

POSITION GetStartPosition() const;

Return Value

반복에 사용할 수 있는 POSITION 값입니다. 목록이 비어 있으면 NULL입니다.

CFileDialog::HideControl

탐색기 스타일 열기 또는 다른 이름으로 저장 일반 대화 상자에서 지정된 컨트롤을 숨기려면 이 멤버 함수를 호출합니다.

void HideControl(int nID);

매개 변수

nID
숨길 컨트롤의 ID입니다.

설명

대화 상자는 OFN_EXPLORER 스타일로 만들어졌어야 합니다. 그렇지 않으면 어설션으로 함수가 실패합니다.

CFileDialog::IsPickFoldersMode

현재 대화 상자가 폴더 선택 모드인지 여부를 확인합니다.

BOOL IsPickFoldersMode() const;

Return Value

대화 상자가 폴더 선택 모드인 경우 TRUE입니다. 그렇지 않으면 FALSE입니다.

설명

CFileDialog::m_ofn

m_ofn 는 형식의 구조체 OPENFILENAME입니다. 이 구조의 데이터는 .의 CFileDialog현재 상태를 나타냅니다.

설명

이 구조를 사용하여 파일을 생성한 후 DoModal 메서드를 사용하여 표시하기 전에 파일 열기 또는 파일 다른 이름으로 저장 대화 상자의 모양을 초기화합니다. 예를 들어 대화 상자를 포함할 캡션 lpstrTitle 멤버 m_ofn 를 설정할 수 있습니다.

CFileDialogm_ofnWindows Vista 이상 스타일에서는 항상 대화 상자의 상태와 일치하도록 보장되지 않습니다. 이전 버전의 Windows에서 대화 상자와 동기화됩니다. Windows Vista 이상에서 구조 및 CFileDialog 상태를 동기화하는 방법에 대한 자세한 내용은 CFileDialog::ApplyOFNToShellDialogCFileDialog::UpdateOFNFromShellDialogm_ofn 참조하세요.

Windows Vista 이상 스타일 파일 대화 상자는 .의 특정 멤버 및 플래그를 CFileDialog지원하지 않습니다. 따라서 영향을 주지 않습니다.

다음은 Windows Vista 이상에서 지원하지 않는 멤버 목록입니다.

  • lpstrCustomFilter

  • lpstrInitialDir

  • lCustData

  • lpfnHook

  • lpTemplateName

다음 플래그는 지원되지 않으므로 Windows Vista 이상 스타일을 CFileDialog사용할 때 영향을 주지 않습니다.

  • OFN_ENABLEHOOK

  • OFN_ENABLEINCLUDENOTIFY

  • OFN_ENABLETEMPLATE

  • OFN_ENABLETEMPLATEHANDLE

  • OFN_EXPLORER

  • OFN_EXTENSIONDIFFERENT

  • OFN_HIDEREADONLY

  • OFN_LONGNAMES - Windows Vista 이상에서 항상 적용

  • OFN_NOLONGNAMES - Windows Vista 이상에서 효과적으로 항상 꺼져 있습니다.

  • OFN_NONETWORKBUTTON - Windows Vista 이상에서 항상 사용

  • OFN_READONLY

  • OFN_SHOWHELP

이 구조에 대한 자세한 내용은 Windows SDK의 OPENFILENAME 구조를 참조하세요.

CFileDialog::MakeProminent

다른 컨트롤에 비해 눈에 띄는 컨트롤을 대화 상자에 배치합니다.

HRESULT MakeProminent(DWORD dwIDCtl);

매개 변수

dwIDCtl
컨트롤의 ID입니다.

설명

CFileDialog::OnButtonClicked

단추를 클릭할 때 호출됩니다.

virtual void OnButtonClicked(DWORD dwIDCtl);

매개 변수

dwIDCtl
단추의 ID입니다.

설명

CFileDialog::OnCheckButtonToggled

검사 상자가 검사 또는 해제될 때 호출됩니다검사.

virtual void OnCheckButtonToggled(
    DWORD dwIDCtl,
    BOOL bChecked);

매개 변수

dwIDCtl
검사 상자의 ID입니다.

bChecked
선택하거나 선택 취소검사.

설명

CFileDialog::OnControlActivating

컨트롤이 활성화될 때 호출됩니다.

virtual void OnControlActivating(DWORD dwIDCtl);

매개 변수

dwIDCtl
컨트롤의 ID입니다.

설명

CFileDialog::OnFileNameChange

WM_NOTIFY CDN_SELCHANGE 메시지를 처리하려는 경우 이 메서드를 재정의합니다.

virtual void OnFileNameChange();

설명

사용자가 열기 또는 다른 이름으로 저장 대화 상자의 파일 목록에서 새 파일 또는 폴더를 선택하면 시스템에서 CDN_SELCHANGE 메시지를 보냅니다. 이 메시지에 대한 응답으로 작업을 수행하려는 경우 이 메서드를 재정의합니다.

시스템은 OFN_EXPLORER 플래그가 켜져 있는 대화 상자를 만든 경우에만 이 메시지를 보냅니다. 알림에 대한 자세한 내용은 CDN_SELCHANGE 참조하세요. OFN_EXPLORER 플래그에 대한 자세한 내용은 OPENFILENAME 구조체 및 열기 및 다른 이름으로 저장 대화 상자를 참조하세요.

CFileDialog::OnFileNameOK

일반 파일 대화 상자에 입력된 파일 이름에 대한 사용자 지정 유효성 검사를 제공하려는 경우에만 이 함수를 재정의합니다.

virtual BOOL OnFileNameOK();

Return Value

파일 이름이 유효한 파일 이름이 아닌 경우 1입니다. 그렇지 않으면 0입니다.

설명

이 함수를 사용하면 애플리케이션별 이유로 파일 이름을 거부할 수 있습니다. 일반적으로 프레임워크는 파일 이름의 기본 유효성 검사를 제공하고 잘못된 파일 이름을 입력한 경우 메시지 상자를 표시하기 때문에 이 함수를 사용할 필요가 없습니다.

1이 반환되면 대화 상자가 다시 표시되고기본 사용자가 다른 파일 이름을 입력할 수 있습니다. 반환이 0이면 대화 상자 프로시저가 대화 상자를 해제합니다. 다른 0이 아닌 반환 값은 현재 예약되어 있으므로 사용하면 안 됩니다.

CFileDialog::OnFolderChange

이 함수를 재정의하여 WM_NOTIFYCDN_FOLDERCHANGE 메시지를 처리합니다.

virtual void OnFolderChange();

설명

열기 또는 다른 이름으로 저장 대화 상자에서 새 폴더를 열면 알림 메시지가 전송됩니다.

OFN_EXPLORER 스타일로 대화 상자를 만든 경우에만 알림이 전송됩니다. 알림에 대한 자세한 내용은 CDN_FOLDERCHANGE 참조하세요. OFN_EXPLORER 스타일에 대한 자세한 내용은 OPENFILENAME 구조체 및 열기 및 다른 이름으로 저장 대화 상자를 참조하세요.

CFileDialog::OnInitDone

이 함수를 재정의하여 WM_NOTIFY CDN_INITDONE 메시지를 처리합니다.

virtual void OnInitDone();

설명

시스템에서 열기 또는 다른 이름으로 저장 대화 상자에서 컨트롤 정렬을 완료하면 자식 대화 상자의 컨트롤을 위한 공간을 확보하기 위해 이 알림 메시지를 보냅니다.

시스템은 OFN_EXPLORER 스타일로 대화 상자를 만든 경우에만 이 메시지를 보냅니다. 알림에 대한 자세한 내용은 CDN_INITDONE 참조하세요. OFN_EXPLORER 스타일에 대한 자세한 내용은 OPENFILENAME 구조체 및 열기 및 다른 이름으로 저장 대화 상자를 참조하세요.

참고 항목

Windows Vista 이상 스타일 파일 대화 상자는 이 함수를 지원하지 않습니다. Windows Vista 이상 스타일 파일 대화 상자에서 이 함수를 사용하려고 하면 CNotSupportedException이 throw됩니다.

CFileDialog::OnItemSelected

컨테이너 항목을 선택할 때 호출됩니다.

virtual void OnItemSelected(
    DWORD dwIDCtl,
    DWORD dwIDItem);

매개 변수

dwIDCtl
컨테이너 컨트롤의 ID입니다.

dwIDItem
항목의 ID입니다.

설명

CFileDialog::OnLBSelChangedNotify

이 함수는 목록 상자의 현재 선택 영역이 변경되려고 할 때마다 호출됩니다.

virtual void OnLBSelChangedNotify(
    UINT nIDBox,
    UINT iCurSel,
    UINT nCode);

매개 변수

nIDBox
선택 항목이 발생한 목록 상자 또는 콤보 상자의 ID입니다.

iCurSel
현재 선택 영역의 인덱스입니다.

nCode
컨트롤 알림 코드입니다. 이 매개 변수에는 다음 값 중 하나가 있어야 합니다.

  • CD_LBSELCHANGE iCurSel을 지정하는 항목은 단일 선택 목록 상자에서 선택한 항목입니다.

  • CD_LBSELSUB 다중 선택 목록 상자에서 iCurSel이 더 이상 선택되지 않음을 지정합니다.

  • CD_LBSELADD 다중 선택 목록 상자에서 iCurSel이 선택되도록 지정합니다.

  • CD_LBSELNOITEMS 다중 선택 목록 상자에 선택 항목이 없음을 지정합니다.

설명

목록 상자에서 선택 변경 내용을 사용자 지정 처리하도록 이 함수를 재정의합니다. 예를 들어 이 함수를 사용하여 사용자가 선택한 각 파일의 액세스 권한 또는 마지막으로 수정한 날짜를 표시할 수 있습니다.

CFileDialog::OnShareViolation

공유 위반에 대한 사용자 지정 처리를 제공하도록 이 함수를 재정의합니다.

virtual UINT OnShareViolation(LPCTSTR lpszPathName);

매개 변수

lpszPathName
공유 위반이 발생한 파일의 경로입니다.

Return Value

다음 값 중 하나:

  • OFN_SHAREFALLTHROUGH 대화 상자에서 파일 이름이 반환됩니다.

  • OFN_SHARENOWARN 더 이상 조치를 취할 필요가 없습니다.

  • OFN_SHAREWARN 사용자가 이 오류에 대한 표준 경고 메시지를 받습니다.

설명

일반적으로 프레임워크는 공유 위반에 대한 기본 검사 기능을 제공하고 공유 위반이 발생하는 경우 메시지 상자를 표시하기 때문에 이 함수를 사용할 필요가 없습니다.

공유 위반 검사 사용하지 않도록 설정하려면 비트 OR 연산자를 사용하여 플래그 OFN_SHAREAWARE 결합m_ofn.Flags합니다.

CFileDialog::OnTypeChange

이 함수를 재정의하여 WM_NOTIFYCDN_TYPECHANGE 메시지를 처리합니다.

virtual void OnTypeChange();

설명

사용자가 열기 또는 다른 이름으로 저장 대화 상자의 파일 형식 목록에서 새 파일 형식을 선택하면 알림 메시지가 전송됩니다.

OFN_EXPLORER 스타일로 대화 상자를 만든 경우에만 알림이 전송됩니다. 알림에 대한 자세한 내용은 CDN_TYPECHANGE 참조하세요. OFN_EXPLORER 스타일에 대한 자세한 내용은 OPENFILENAME 구조체 및 열기 및 다른 이름으로 저장 대화 상자를 참조하세요.

CFileDialog::RemoveControlItem

대화 상자의 컨테이너 컨트롤에서 항목을 제거합니다.

HRESULT RemoveControlItem(
    DWORD dwIDCtl,
    DWORD dwIDItem);

매개 변수

dwIDCtl
항목을 제거할 컨테이너 컨트롤의 ID입니다.

dwIDItem
항목의 ID입니다.

설명

CFileDialog::SetCheckButtonState

대화 상자에서 검사 단추(검사 상자)의 현재 상태를 설정합니다.

HRESULT SetCheckButtonState(
    DWORD dwIDCtl,
    BOOL bChecked);

매개 변수

dwIDCtl
검사 상자의 ID입니다.

bChecked
검사 상자의 상태입니다. TRUE는 검사;을 나타냅니다. FALSE는 un검사ed를 나타냅니다.

설명

CFileDialog::SetControlItemState

대화 상자에 있는 컨테이너 컨트롤에 있는 항목의 현재 상태를 설정합니다.

HRESULT SetControlItemState(
    DWORD dwIDCtl,
    DWORD dwIDItem,
    CDCONTROLSTATEF dwState);

매개 변수

dwIDCtl
컨테이너 컨트롤의 ID입니다.

dwIDItem
항목의 ID입니다.

dwState
컨트롤의 새 상태를 나타내는 CDCONTROLSTATE 열거형에서 하나 이상의 값입니다.

설명

CFileDialog::SetControlItemText

컨트롤 항목의 텍스트를 설정합니다. 예를 들어 라디오 단추 또는 메뉴의 항목과 함께 제공되는 텍스트입니다.

HRESULT SetControlItemText(
    DWORD dwIDCtl,
    DWORD dwIDItem,
    const CString& strLabel);

매개 변수

dwIDCtl
컨테이너 컨트롤의 ID입니다.

dwIDItem
항목의 ID입니다.

strLabel
항목의 텍스트입니다.

설명

CFileDialog::SetControlLabel

단추 텍스트 또는 편집 상자 레이블과 같이 컨트롤과 연결된 텍스트를 설정합니다.

HRESULT SetControlLabel(
    DWORD dwIDCtl,
    const CString& strLabel);

매개 변수

dwIDCtl
컨트롤의 ID입니다.

strLabel
컨트롤 이름입니다.

설명

CFileDialog::SetControlState

지정된 컨트롤의 현재 표시 유형 및 사용 상태를 설정합니다.

HRESULT SetControlState(
    DWORD dwIDCtl,
    CDCONTROLSTATEF dwState);

매개 변수

dwIDCtl
컨트롤의 ID입니다.

dwState
컨트롤의 현재 상태를 나타내는 CDCONTROLSTATE 열거형에서 하나 이상의 값입니다.

설명

CFileDialog::SetControlText

탐색기 스타일 열기 또는 다른 이름으로 저장 대화 상자에서 지정된 컨트롤의 텍스트를 설정하려면 이 메서드를 호출합니다.

void SetControlText(
    int nID,
    LPCSTR lpsz);

void SetControlText(
    int nID,
    const wchar_t *lpsz);

매개 변수

nID
[in] 텍스트를 설정할 컨트롤의 ID입니다.

lpsz
[in] 컨트롤에 대해 설정할 텍스트가 들어 있는 문자열에 대한 포인터입니다.

설명

이 함수의 두 버전은 모두 유니코드를 사용하는 애플리케이션에 유효합니다. 그러나 LPCSTR 형식의 버전만 ANSI를 사용하는 애플리케이션에 유효합니다.

이 메서드를 사용하려면 OFN_EXPLORER 스타일로 대화 상자를 만들어야 합니다. 그렇지 않으면 어설션으로 함수가 실패합니다.

CFileDialog::SetDefExt

탐색기 스타일의 열기 또는 다른 이름으로 저장 대화 상자의 기본 파일 이름 확장명을 설정하려면 이 함수를 호출합니다.

void SetDefExt(LPCSTR lpsz);

매개 변수

lpsz
대화 상자 개체에 사용할 기본 확장이 포함된 문자열에 대한 포인터입니다. 이 문자열에는 마침표(.)가 포함되어서는 안 됩니다.

설명

대화 상자는 OFN_EXPLORER 스타일로 만들어졌어야 합니다. 그렇지 않으면 어설션으로 함수가 실패합니다.

CFileDialog::SetEditBoxText

편집 상자 컨트롤의 현재 텍스트를 설정합니다.

HRESULT SetEditBoxText(
    DWORD dwIDCtl,
    const CString& strText);

매개 변수

dwIDCtl
편집 상자의 ID입니다.

strText
텍스트 값입니다.

설명

CFileDialog::SetProperties

저장 중인 항목에 사용할 기본값을 정의하는 속성 저장소를 제공합니다.

BOOL SetProperties(LPCWSTR lpszPropList);

매개 변수

lpszPropList
";"으로 구분되는 미리 정의된 속성의 목록입니다. 플래그 목록은 OPENFILENAME의 Flags 섹션을 참조하세요.

설명

CFileDialog::SetSelectedControlItem

옵션 단추 그룹 또는 대화 상자에 있는 콤보 상자에서 특정 항목의 선택한 상태를 설정합니다.

HRESULT SetSelectedControlItem(
    DWORD dwIDCtl,
    DWORD dwIDItem);

매개 변수

dwIDCtl
컨테이너 컨트롤의 ID입니다.

dwIDItem
사용자가 컨트롤에서 선택한 항목의 ID입니다.

설명

CFileDialog::SetTemplate

CFileDialog 개체에 대한 대화 상자 템플릿을 설정합니다.

void SetTemplate(
    UINT nWin3ID,
    UINT nWin4ID);

void SetTemplate(
    LPCTSTR lpWin3ID,
    LPCTSTR lpWin4ID);

매개 변수

nWin3ID
[in] 탐색기가 CFileDialog 아닌 개체에 대한 템플릿 리소스의 ID 번호를 포함합니다. 이 템플릿은 Windows NT 3.51 또는 OFN_EXPLORER 스타일이 없는 경우에만 사용됩니다.

nWin4ID
[in] 탐색기 CFileDialog 개체에 대한 템플릿 리소스의 ID 번호를 포함합니다. 이 템플릿은 Windows NT 4.0 이상 버전, Windows 95 이상 버전 또는 OFN_EXPLORER 스타일이 있는 경우에만 사용됩니다.

lpWin3ID
[in] 탐색기가 CFileDialog 아닌 개체에 대한 템플릿 리소스의 이름을 포함합니다. 이 템플릿은 Windows NT 3.51 또는 OFN_EXPLORER 스타일이 없는 경우에만 사용됩니다.

lpWin4ID
[in] 탐색기 CFileDialog 개체의 템플릿 리소스 이름을 포함합니다. 이 템플릿은 Windows NT 4.0 이상 버전, Windows 95 이상 버전 또는 OFN_EXPLORER 스타일이 있는 경우에만 사용됩니다.

설명

시스템은 지정된 템플릿 중 하나만 사용합니다. 시스템은 OFN_EXPLORER 스타일 및 애플리케이션이 실행 중인 운영 체제의 존재에 따라 사용할 템플릿을 결정합니다. 비 탐색기 및 탐색기 스타일 템플릿을 모두 지정하면 Windows NT 3.51, Windows NT 4.0 이상 버전 및 Windows 95 이상 버전을 쉽게 지원할 수 있습니다.

참고 항목

Windows Vista 이상 스타일 파일 대화 상자는 이 함수를 지원하지 않습니다. Windows Vista 이상 스타일 파일 대화 상자에서 이 함수를 사용하려고 하면 CNotSupportedException이 throw됩니다. 다른 방법은 사용자 지정된 대화 상자를 사용하는 것입니다. 사용자 지정 CFileDialog사용에 대한 자세한 내용은 IFileDialogCustomize를 참조 하세요.

CFileDialog::StartVisualGroup

대화 상자에서 시각적 개체 그룹을 선언합니다. "add" 메서드에 대한 후속 호출은 해당 요소를 이 그룹에 추가합니다.

HRESULT StartVisualGroup(
    DWORD dwIDCtl,
    const CString& strLabel);

매개 변수

dwIDCtl
시각적 개체 그룹의 ID입니다.

strLabel
그룹 이름입니다.

설명

CFileDialog::UpdateOFNFromShellDialog

내부 개체의 m_ofn현재 상태를 기반으로 CFileDialog의 데이터 구조를 업데이트.

void UpdateOFNFromShellDialog();

설명

Windows Vista 이전의 Windows 버전에서는 멤버 OPENFILENAME 데이터 구조가 계속 상태 CFileDialog와 동기화되었습니다. m_ofn 멤버 변수의 변경 내용은 대화 상자의 상태에 직접적인 영향을 미쳤습니다. 또한 대화 상자의 상태가 변경되면 m_ofn 멤버 변수가 즉시 업데이트되었습니다.

Windows Vista 이상에서는 데이터 구조가 m_ofn 자동으로 업데이트되지 않습니다. 멤버 변수의 데이터의 정확도를 m_ofn 보장하려면 데이터에 액세스하기 전에 함수를 호출 UpdateOFNFromShellDialog 해야 합니다. Windows는 IFileDialog::OnFileOK처리하는 동안 이 함수를 자동으로 호출합니다.

Windows Vista 이상에서 클래스를 사용하는 CFileDialog 방법에 대한 자세한 내용은 CFileDialog 클래스를 참조 하세요.

예시

다음은 표시하기 전에 업데이트 CFileDialog 하는 예제입니다. 멤버 변수를 m_ofn 업데이트하기 전에 대화 상자의 현재 상태로 동기화해야 합니다.

// Update the m_ofn variable
m_myFileDialogPtr->UpdateOFNFromShellDialog();

// Change the title
m_myFileDialogPtr->m_ofn.lpstrTitle = L"New Dialog Title";

// Apply the changes
m_myFileDialogPtr->ApplyOFNToShellDialog();

// Show the window
LRESULT result = m_myFileDialogPtr->DoModal();

참고 항목

CCommonDialog 클래스
계층 구조 차트