파일 다운로드 대화상자

사용자가 디렉터리에서 둘 이상의 파일을 선택할 수 있도록 하려면 OFN_ALLOWMULTISELECT 플래그를 설정 합니다. 이전 응용 프로그램과의 호환성을 위해 기본 다중 선택 대화 상자는 이전 스타일의 사용자 인터페이스를 사용 합니다. 탐색기 스타일 다중 선택 대화 상자를 표시 하려면 OFN_EXPLORER 플래그도 설정 해야 합니다. 다음 코드 조각은 두 개의 필터를 지정 합니다. “원본” 설명과 함께 필터에는 두 가지 패턴이 있습니다. 사용자가이 필터를 선택 하면 대화 상자에는. C와. cxx 확장. 참고 C 프로그래밍 언어에서 큰따옴표로 묶은 문자열은 null로 끝나는.

사용자가 두 개 이상의 파일을 선택 하는 경우에 의해 가리키는 버퍼 lstrfile 구성원 선택한 파일의 파일 이름 뒤에 현재 디렉터리 경로를 반환 합니다. nfileoffset 멤버는 첫 번째 파일 이름의 오프셋 이며 nfileextension 멤버는 사용 되지 않습니다. 다음 표에서는 여러 파일 이름을 반환 하는 탐색기 스타일 및 이전 스타일 대화 상자의 차이점에 대해 설명 합니다. 탐색기 스타일 후크 프로시저는 대화 상자가 열려 있는 동안 다양 한 메시지를 받습니다. 여기에는 다음이 포함 됩니다. 사용자가 읽기 전용 확인란을 선택 하면 대화 상자가 반환 될 때 OFN_READONLY 플래그를 설정 합니다. 읽기 전용으로 열기 확인란을 숨기려면 OFN_HIDEREADONLY 플래그를 설정 합니다. 대화 상자가 읽기 전용 특성을 가진 기존 파일의 이름을 반환 하지 않도록 하려면 OFN_NOREADONLYRETURN 플래그를 설정 합니다. findfirstfile 함수를 사용 하 여 길고 짧은 파일 이름을 변환할 수 있습니다.

탐색기 스타일 열기 및 다른 이름으로 저장 대화 상자는 Windows 탐색기와 유사한 사용자 인터페이스 기능을 제공 합니다. 그러나 이전 스타일의 사용자 인터페이스와 일치 해야 하는 응용 프로그램에 대 한 이전 스타일의 열기 및 다른 이름으로 저장 대화 상자를 계속 지원 합니다. 후크 프로시저, 사용자 지정 서식 파일 또는 둘 다를 제공 하 여 열기 또는 다른 이름으로 저장 대화 상자를 사용자 지정할 수 있습니다. 그러나 대화 상자의 탐색기 스타일 및 이전 스타일 버전은 사용자 지정 템플릿과 후크 프로시저의 사용에 따라 다릅니다. 다음 그림에서는 일반적인 탐색기 스타일 열기 대화 상자를 보여 줍니다. OFN_ALLOWMULTISELECT를 지정 하 고 사용자가 하나의 파일만을 선택 하는 경우 경로와 파일 이름 사이에 구분 기호가 없습니다. 탐색기 스타일 대화 상자에 대 한 후크 프로시저를 제공 하는 경우 기본 대화 상자 프로시저의 WM_INITDIALOG 메시지를 처리할 때 자식 대화 상자를 만듭니다. 후크 프로시저는 자식 대화 상자의 대화 상자 프로시저 역할을 합니다.

이 때 후크 프로시저는 자체 WM_INITDIALOG 메시지를 받습니다는 lparam 매개 변수를 사용 하 여 대화 상자를 초기화 하는 openfilename 구조의 주소를 설정 합니다. 자식 대화 상자에서 자체 WM_INITDIALOG 메시지 처리를 마치면 기본 대화 프로시저는 필요한 경우 표준 컨트롤을 이동 하 여 자식 대화 상자의 추가 컨트롤을 위한 공간을 만듭니다. 그런 다음 기본 대화 프로시저는 후크 프로시저에 CDN_INITDONE 알림 메시지를 보냅니다. WS_CHILD 및 WS_CLIPSIBLINGS 스타일을 지정 하 고 DS_3DLOOK 및 DS_CONTROL 스타일을 지정 해야 한다는 점을 제외 하면 다른 템플릿과 마찬가지로 하위 대화 상자 템플릿을 만들 수 있습니다. 템플릿에서 기본 열기 또는 다른 이름으로 저장 대화 상자의 자식 대화 상자를 정의 하므로 시스템에 WS_CHILD 스타일이 필요 합니다. WS_CLIPSIBLINGS 스타일을 사용 하면 자식 대화 상자가 기본 대화 상자에 있는 컨트롤 위에 칠하지 않습니다. DS_3DLOOK 스타일은 자식 대화 상자의 컨트롤 모양이 기본 대화 상자의 컨트롤과 일치 하는지 확인 합니다. DS_CONTROL 스타일은 사용자 지정 된 대화 상자에서 탭 및 기타 탐색 키를 사용 하 여 모든 컨트롤, 기본값 또는 사용자 지정 사이를 이동할 수 있는지 확인 합니다.

Thanks! You've already liked this