OPENFILENAME 구조는 열기 또는 저장으로 일반 대화 상자를 초기화 하는 GetOpenFileName 및 GetSaveFileName 함수를 사용 하는 정보를 포함 합니다. 시스템 사용자 대화 상자를 닫습니다 후이 구조에서 사용자의 선택에 대 한 정보를 반환 합니다. .
typedef struct tagOFN {/ / ofn DWORD lStructSize;
HWND hwndOwner;
HINSTANCE hInstance;
LPCTSTR lpstrFilter;
LPTSTR lpstrCustomFilter;
DWORD nMaxCustFilter;
DWORD nFilterIndex;
LPTSTR lpstrFile;
DWORD nMaxFile;
LPTSTR lpstrFileTitle;
DWORD nMaxFileTitle;
LPCTSTR lpstrInitialDir;
LPCTSTR lpstrTitle;
DWORD 플래그;
WORD nFileOffset;
WORD nFileExtension;
LPCTSTR lpstrDefExt;
DWORD lCustData;
LPOFNHOOKPROC lpfnHook;
LPCTSTR lpTemplateName;
} OPENFILENAME
OFN_EXPLORER 플래그가 설정 되어 있으면 시스템 지정된 된 서식 파일을 사용 하 여 기본 탐색기 스타일 대화 상자의 자식인 대화 상자를 만듭니다. OFN_EXPLORER 플래그가 설정 되어 있지 않으면 시스템에서 템플릿을 사용 하 여 기본 대화 상자를 대체 하는 오래 된-스타일 대화 상자 만들기.
각 쌍의 첫 번째 문자열은 표시 문자열 필터 (예를 들어, "텍스트 파일")을 설명 하 고 두 번째 문자열 필터 패턴을 지정 합니다. (예를 들어, "*.TXT ")입니다. 단일 디스플레이 문자열에 대 한 여러 개의 필터 패턴을 지정 하려면 패턴을 구분 하려면 세미콜론을 사용 (예를 들어, "*.TXT; *.DOC; *.이명박 ")입니다. 패턴 문자열에는 유효한 문자와 별표 (*) 와일드 카드 문자 조합이 될 수 있습니다. 패턴 문자열에 공백을 포함 하지 마십시오.
시스템 필터의 순서를 변경 하지 않습니다. 그것은 lpstrFilter 에 지정 된 순서에 따라 파일형식 콤보 상자에 표시 됩니다. .
LpstrFilter 이 NULL 이면 대화 상자가 표시 되지 않습니다 모든 필터.
이 멤버가 NULL 이면 대화 상자 사용자 정의 필터 패턴을 유지 하지 않습니다.
이 멤버가 NULL 이면 nMaxCustFilter 멤버의 값 lpstrCustomFilter 버퍼의 크기를 바이트 (ANSI 버전) 또는 16 비트 문자 (유니코드 버전)을 지정 해야 합니다.
NFilterIndex 0 경우 lpstrCustomFilter 은 NULL 시스템 lpstrFilter 버퍼의 첫 번째 필터를 사용 합니다. 세 멤버 모두 0 또는 NULL 인 경우 시스템 어떤 필터를 사용 하지 않는 하 고 모든 파일 대화 상자의 파일 목록 컨트롤에 표시 되지 않습니다.
OFN_ALLOWMULTISELECT 플래그가 설정 되어 사용자가 여러 파일을 선택 하는 경우 버퍼는 뒤에 선택한 파일의 파일 이름이 현재 디렉터리를 포함 합니다. 탐색기 스타일 대화 상자에 대 한 디렉터리 및 파일 이름 문자열은 NULL 마지막 파일 이름 후 추가 NULL 문자로 구분 합니다. 오래 된-스타일 대화 상자에 대 한 문자열은 공백으로 및 함수 공백이 있는 파일 이름을 짧은 파일 이름을 사용 합니다. 사용할 수 있는 긴 및 짧은 파일 이름 사이의 변환 하려면 FindFirstFile 함수.
경우 버퍼가 너무 작습니다,이 함수는 FALSE를 반환 하 고 CommDlgExtendedError 함수는 FNERR_BUFFERTOOSMALL를 반환 합니다. 이 경우 lpstrFile 버퍼의 첫 번째 2 바이트 포함 바이트 또는 문자에서 필요한 크기.
Windows NT 5.0 및 이후; Windows 98 이상:
초기 디렉터리는 현재 디렉터리 lpstrInitalDir 은 NULL 현재 디렉터리 지정한 필터 형식의 모든 파일을 포함 하는 경우.
LpstrInitalDir 은 NULL 현재 디렉터리에 지정 된 필터 종류의 어떤 파일이 없는 경우 초기 디렉터리는 현재 사용자의 개인 파일 디렉터리. 초기 디렉터리와 현재 사용자의 개인 파일 디렉터리를 지정 하려면 lpstrInitialDir 를 호출 하 여 반환 하는 경로를 설정 합니다 CSIDL_PERSONAL 플래그와 함께 SHGetSpecialFolderLocation 함수.
이전 버전의 Windows 및 Windows NT:
초기 디렉터리는 현재 디렉터리 lpstrInitalDir 이 NULL 인 경우.
| 플래그 | 의미 |
|---|---|
| OFN_ALLOWMULTISELECT | |
| 파일이름 목록 상자에 여러 항목을 선택할 수 있습니다를 지정 합니다. OFN_EXPLORER 플래그를 또한 설정 하는 경우 대화 상자에서는 탐색기 스타일 사용자 인터페이스; 그렇지 않으면, 그것은 오래 된-스타일 사용자 인터페이스를 사용 하 여 . 사용자가 하나 이상의 파일을 선택 하는 경우 lpstrFile 버퍼를 선택한 파일의 파일 이름 뒤에 현재 디렉터리 경로를 반환 합니다. NFileOffset 구성원은 바이트 또는 문자, 첫 번째 파일의 오프셋 및 nFileExtension 멤버는 사용 되지 않습니다. 탐색기 스타일 대화 상자에 대 한 디렉터리 및 파일 이름 문자열은 NULL 마지막 파일 이름 후 추가 NULL 문자로 구분 합니다. 이 형식에는 공백을 포함 하는 긴 파일 이름을 반환 하려면 탐색기 스타일 대화 상자 수 있습니다. 오래 된-스타일 대화 상자에 대 한 디렉터리 및 파일 이름 문자열 공백으로 구분 하 고 함수 공백이 있는 파일 이름을 짧은 파일 이름 사용. 사용할 수 있는 긴 및 짧은 파일 이름 사이의 변환 하려면 FindFirstFile 함수. 오래 된-스타일 대화 상자에 대 한 사용자 지정 서식 파일을 지정 하는 경우 파일 이름 목록 상자 정의 LBS_EXTENDEDSEL 값을 포함 해야 합니다. |
|
| OFN_CREATEPROMPT | |
| 사용자가 존재 하지 않는 파일을 지정 하는 경우이 플래그는 파일을 만들 수 있는 권한을 사용자에 게 묻는 대화 상자를 발생 합니다. 사용자가 만드는 파일을 선택 하는 경우 대화 상자가 닫히고 함수는 지정한 이름을 반환 합니다. 그렇지 않으면 대화 상자가 계속 열려 있습니다. 대화 상자에 사용자를 존재 하지 않는 파일을 하나만 지정할 수 있습니다이 플래그를 사용 하 여 OFN_ALLOWMULTISELECT 플래그와 함께 하는 경우. | |
| OFN_ENABLEHOOK | |
| LpfnHook 구성원에 지정 된 후크 함수를 사용 하면. | |
| OFN_ENABLESIZING | |
| Windows NT 5.0, Windows 98:탐색기 스타일 대화 상자를 마우스 또는 키보드를 사용 하 여 크기를 조정할 수 있습니다. 기본적으로 탐색기 스타일 오픈 및으로 저장대화 상자는이 플래그가 설정 되어 있는지 여부에 관계 없이 크기를 조정할 수 대화 상자를 허용 합니다. 이 플래그는 후크 프로시저 또는 사용자 지정 서식 파일을 제공 하는 경우에 필요 합니다. 오래 된-스타일 대화 상자 크기를 허용 하지 않습니다. . | |
| OFN_ENABLETEMPLATE | |
| LpTemplateName 회원 hInstance 회원에 의해 식별 된 모듈에서 대화 상자 템플릿 리소스 이름에 포인트를 나타냅니다. OFN_EXPLORER 플래그가 설정 되어 있으면 시스템 지정된 된 서식 파일을 사용 하 여 기본 탐색기 스타일 대화 상자의 자식인 대화 상자를 만듭니다. OFN_EXPLORER 플래그가 설정 되어 있지 않으면 시스템에서 템플릿을 사용 하 여 기본 대화 상자를 대체 하는 오래 된-스타일 대화 상자 만들기. |
|
| OFN_ENABLETEMPLATEHANDLE | |
| HInstance 회원 식별 로드 대화 상자 템플릿을 포함 하는 데이터 블록을 나타냅니다. 이 플래그를 지정 하는 경우 lpTemplateName 를 무시 하는 시스템. OFN_EXPLORER 플래그가 설정 되어 있으면 시스템 지정된 된 서식 파일을 사용 하 여 기본 탐색기 스타일 대화 상자의 자식인 대화 상자를 만듭니다. OFN_EXPLORER 플래그가 설정 되어 있지 않으면 시스템에서 템플릿을 사용 하 여 기본 대화 상자를 대체 하는 오래 된-스타일 대화 상자 만들기. |
|
| OFN_EXPLORER | |
| 열기 또는 저장으로 대화 상자에 사용자 지정 새 탐색기 스타일 사용자 지정 메서드를 사용 하 여 나타냅니다. 자세한 내용은 탐색기 스타일 후크 프로시저 와 탐색기 스타일 사용자 지정 서식 파일 를 참조 하십시오. . 기본적으로 열기 및으로 저장대화 상자는이 플래그가 설정 되어 있는지 여부에 관계 없이 탐색기 스타일의 사용자 인터페이스를 사용 합니다. 이 플래그는 후크 프로시저 또는 사용자 지정 서식 파일을 제공 하거나 OFN_ALLOWMULTISELECT 플래그를 설정 하는 경우에 필요 . 오래 된-스타일 사용자 인터페이스를 생략 OFN_EXPLORER 플래그가 대체 오래 된-스타일 템플릿을 제공 또는 프로시저를 후크. 이전 스타일 하지만 또는 하지 않는 사용자 지정 서식 파일을 필요 후크 프로시저를 하는 경우 항상 FALSE를 반환 하는 후크 프로시저를 제공 하기만 하면. |
|
| OFN_EXTENSIONDIFFERENT | |
| 사용자 입력 lpstrDefExt에 지정 된 확장명 다른 확장자를 지정 합니다. 함수 lpstrDefExt 이 null 인 경우이 플래그를 사용 하지 않습니다. | |
| OFN_FILEMUSTEXIST | |
| 사용자 파일 이름 입력 필드에 기존 파일의 이름만 입력할 수를 지정 합니다. 이 플래그를 지정 하는 경우 사용자가 잘못 된 이름 입력 대화 상자 프로시저를 메시지 상자에 경고를 표시 합니다. OFN_PATHMUSTEXIST 플래그 사용도이 플래그를 지정 하는 경우. | |
| OFN_HIDEREADONLY | |
| 읽기전용 확인란을 숨깁니다. . | |
| OFN_LONGNAMES | |
| 오래 된-스타일 대화 상자에 대 한이 플래그는 긴 파일 이름 사용 하 여 대화 상자를 발생 합니다. 오래 된-스타일 대화 상자 짧은 파일 이름 (8.3 형식)를 사용 하 여 공백이 포함 된 파일에 대 한이 플래그를 지정 하지 않으면 또는 OFN_ALLOWMULTISELECT 플래그가 설정도. 탐색기 스타일 대화 상자의이 플래그를 무시 하 고 항상 긴 파일 이름 표시. |
|
| OFN_NOCHANGEDIR | |
| 사용자는 파일을 검색 하는 동안 디렉터리를 변경한 경우 현재 디렉터리를 원래 값으로 복원. | |
| OFN_NODEREFERENCELINKS | |
| 대화 상자 반환 경로 파일 이름을 선택한 바로 가기의 지시 (.LNK) 파일입니다. 이 값을 지정 하지 않으면 대화 상자 반환 경로 파일 이름을 파일 에 의해 참조 되 는 바로 가기 | |
| OFN_NOLONGNAMES | |
| 오래 된-스타일 대화 상자에 대해이 플래그 하면 짧은 파일 이름 (8.3 형식)를 사용 하 여 대화 상자. 탐색기 스타일 대화 상자의이 플래그를 무시 하 고 항상 긴 파일 이름 표시. |
|
| OFN_NONETWORKBUTTON | |
| 이 숨겨지고 네트워크 단추 비활성화. | |
| OFN_NOREADONLYRETURN | |
| 반환 된 파일 읽기 전용 확인란을 선택 하지 않은 및 쓰기 보호 된 디렉터리에 없으면 지정. | |
| OFN_NOTESTFILECREATE | |
| 지정 대화 상자를 닫기 전에 파일 생성 되지 않습니다. 이 플래그를 해야 지정할 경우 응용 프로그램 만들기 nonmodify 네트워크 공유에 파일을 저장 합니다. 응용 프로그램에서이 플래그를 지정 하는 경우 라이브러리 쓰기 보호, 전체 디스크, 열려 드라이브 문이 또는 네트워크 보호에 대 한 확인 하지 않습니다. 이 플래그를 사용 하 여 응용 프로그램 닫히면이 파일을 다시 열 수 없습니다 때문에 파일 작업을 신중 하 게 수행 해야 합니다. | |
| OFN_NOVALIDATE | |
| 일반 대화 상자 반환 된 파일 이름에 잘못 된 문자 수를 지정 합니다. 일반적으로, 호출 응용 프로그램 파일을 검사 하는 FILEOKSTRING 메시지를 사용 하 여 후크 프로시저를 사용 합니다. 편집 컨트롤의 텍스트 상자는 비어 있거나 공백이 아무것도 포함, 파일 및 디렉터리의 목록이 업데이트 됩니다. 편집 컨트롤의 텍스트 상자에서 아무것도 포함 하는 경우 nFileOffset 및 nFileExtension 텍스트를 구문 분석 하 여 생성 된 값으로 설정 됩니다. 기본 확장명은 텍스트에 추가 됩니다 없으며 텍스트 lpstrFileTitle 에 의해 지정 된 버퍼에 복사. | |
| 0 보다 작은 값을 nFileOffset 에 의해 지정 된 파일 이름이 유효 하지 않습니다. 그렇지 않으면, 파일 이름이 유효 하 고 nFileExtension 및 nFileOffset 경우 OFN_NOVALIDATE 플래그를 지정 하지 했다 사용할 수 있습니다. | |
| OFN_OVERWRITEPROMPT | |
| 저장으로 대화 상자를 선택한 파일이 이미 존재 하는 경우 메시지 상자를 생성 하려면 발생 합니다. 사용자는 파일을 덮어쓸지 여부를 확인 해야 합니다. . | |
| OFN_PATHMUSTEXIST | |
| 사용자가 유효한 경로 파일 이름을 입력할 수를 지정 합니다. 이 플래그를 사용 하는 경우 사용자가 잘못 된 경로 파일 이름을 파일 이름 입력 필드에 대화 상자 함수를 메시지 상자에 경고를 표시. | |
| OFN_READONLY | |
| 읽기전용 확인란 대화 상자를 만들 때 처음 체크를 하면 됩니다. 이 플래그는 대화 상자를 닫을 때 읽기전용 확인란의 상태를 나타냅니다. . | |
| OFN_SHAREAWARE | |
| 호출 하는 경우 지정 된 OpenFile 함수 네트워크 공유 위반 때문에 실패 하면 오류를 무시 하 고 대화 상자는 선택한 파일을 반환 합니다. 이 플래그가 설정 되어 있지 않으면 사용자가 지정한 파일 이름에 대 한 네트워크 공유 위반이 발생할 때 대화 상자 후크 프로시저를 알립니다. OFN_EXPLORER 플래그를 설정 하는 경우 대화 상자 후크 프로시저를 CDN_SHAREVIOLATION 메시지를 보냅니다. OFN_EXPLORER 설정 하지 않으면 대화 상자 후크 프로시저를 SHAREVISTRING 등록 된 메시지를 보냅니다. |
|
| OFN_SHOWHELP | |
| 도움말 단추를 표시 하려면 대화 상자를 발생 합니다. HwndOwner 구성원 HELPMSGSTRING 을 받을 수 있는 창을 등록 대화 상자에서 도움말 단추를 클릭할 때 보내는 메시지를 지정 해야 합니다. 도움말 단추를 클릭할 때 탐색기 스타일 대화 상자의 후크 프로시저를 CDN_HELP 알림 메시지를 보냅니다. |
|
NFileOffset 첫 번째 파일의 오프셋은 사용자가 하나 이상의 파일을 선택 하는 경우.
플래그 구성원에서 OFN_EXPLORER 플래그가 설정 되어 있지 않으면 lpfnHook 대화 상자를 위한 메시지를 수신 하는 OFNHookProcOldStyle 후크 프로시저에 대 한 포인터입니다. 후크 프로시저는 메시지 삭제 또는 그 사실 기본 대화 상자 프로시저에 메시지를 전달 하는 FALSE를 반환 합니다.
OFN_EXPLORER 설정 하는 경우 lpfnHook OFNHookProc 후크 프로시저에 대 한 포인터입니다. 후크 프로시저는 대화 상자에서 보낸 알림 메시지를 받습니다. 후크 프로시저는 또한 자식 대화 서식 파일을 지정 하 여 정의 하는 추가 컨트롤에 대 한 메시지를 받습니다. 후크 프로시저는 기본 대화 상자의 표준 컨트롤 위한 메시지를 수신 하지 않습니다.
OFN_EXPLORER 플래그가 설정 되어 있으면 시스템 지정된 된 서식 파일을 사용 하 여 기본 탐색기 스타일 대화 상자의 자식인 대화 상자를 만듭니다. OFN_EXPLORER 플래그가 설정 되어 있지 않으면 시스템에서 템플릿을 사용 하 여 기본 대화 상자를 대체 하는 오래 된-스타일 대화 상자 만들기.
nbsp;?Windows &NT: 버전 3.1 이상이 필요 합니다.
Windows:Windows 95 이상이 필요합니다.
Windows CE:버전 1.0 이상이 필요합니다.
헤더:Commdlg.h에 선언 합니다.
유니코드:유니코드와 ANSI 구조 정의.
공용 대화 상자 라이브러리 개요, 일반 대화 상자 구조, GetOpenFileName GetSaveFileName, SHGetSpecialFolderLocation