탐색기 스타일 사용자 지정 서식 파일

탐색기 스타일 열기 또는 다른 이름으로 저장 대화 상자에 대 한 추가 컨트롤을 정의 하려면 OPENFILENAME 구조를 사용 하 여 추가 컨트롤이 포함 된 자식 대화 상자에 대 한 서식 파일을 지정 합니다. 자식 대화 서식 파일에는 응용 프로그램 또는 동적 연결 라이브러리에서 리소스를 플래그 구성원에서 OFN_ENABLETEMPLATE 플래그를 설정 하 고 구조의 hInstancelpTemplateName 멤버를 사용 하 여 모듈 및 리소스 이름을 식별 합니다. 서식 파일 메모리에 이미 경우 OFN_ENABLETEMPLATEHANDLE 플래그를 설정 하 고 hInstance 멤버를 사용 하 여 서식 파일을 포함 하는 메모리 개체를 식별 합니다. OFN_EXPLORER 플래그가; 설정 해야 합니다 탐색기 스타일 대화 상자에 대 한 자식 대화 서식 파일을 제공 하는 경우 그렇지 않으면, 시스템 대체 서식 파일을 제공 하 고 오래 된-스타일 대화 상자에 대 한 가정 합니다. 일반적으로 추가 컨트롤을 제공 하는 경우 또한 제공 해야 합니다는 탐색기 스타일 후크 프로시저 메시지를 처리할 새 컨트롤에 대 한.

다른 서식 파일 같이, WS_CHILD 및 WS_CLIPSIBLINGS 스타일을 지정 해야 합니다 및 DS_3DLOOK 및 DS_CONTROL 스타일을 지정 해야 한다는 자식 대화 상자 템플릿을 만들 수 있습니다. 서식 파일의 기본 열기 또는 다른 이름으로 저장 대화 상자 자식 대화를 정의 하기 때문에 시스템 WS_CHILD 스타일이 필요 합니다. WS_CLIPSIBLINGS 스타일 자식 대화 상자 기본 대화 상자에 있는 컨트롤 위에 페인트 하지 않습니다 것을 보장 합니다. DS_3DLOOK 스타일 자식 대화 상자에 있는 컨트롤의 모양이 기본 대화 상자에 컨트롤과 일치는 않았는지 확인 하십시오. DS_CONTROL 스타일 사용자 컨트롤, 기본 또는 사용자 지정된 대화 상자에서 사용자 지정을 모두 사이 이동 하는 탭 및 다른 탐색 키를 사용할 수 있도록.

새 컨트롤을 위한 공간을 시스템에 기본 대화 상자를 사용자 지정 대화 상자의 높이 너비에 의해 확장 됩니다. 기본적으로 사용자 지정 대화 상자에서 모든 컨트롤은 위치 아래의 기본 대화 상자에 컨트롤. 그러나 사용자 지정 대화 상자 템플릿을 정적 텍스트 컨트롤을 포함 하 고 stc32의 컨트롤 식별자 값을 할당 하 여 포지셔닝이 기본값을 재정의할 수 있습니다. (이 값은 DLG에 정의 됩니다.H 헤더 파일입니다.) 이 경우 시스템을 새 컨트롤을 배치할 위치를 결정 하는 것에 대 한 참조 지점으로 컨트롤을 사용 합니다. 모든 새 컨트롤 위에 stc32 컨트롤의 왼쪽에 배치 하는 기본 대화 상자에 있는 컨트롤의 왼쪽 위을 동일한 금액. 새로운 컨트롤 및 stc32 컨트롤의 오른쪽 아래는 아래와 기본 컨트롤의 오른쪽에 배치 됩니다. 일반적으로, 각 새 제어 stc32 제어 했다 그것으로 기본 컨트롤을 기준으로 동일한 위치에 있도록 배치 됩니다. 이러한 새 컨트롤을 위한 공간을 왼쪽, 오른쪽, 아래쪽 및 필요에 따라 기본 대화 상자 위쪽에 공간 추가 됩니다.

시스템 후크 프로시저를 사용자 지정 대화 상자를 위한 모든 메시지를 처리 하며, 따라서 다른 대화 상자 프로시저를 후크 프로시저를 같은 창 메시지를 보냅니다. 예를 들어, 후크 프로시저는 사용자 지정 대화 상자에서 단추 컨트롤을 클릭할 때 WM_COMMAND 메시지를 받습니다. 후크 프로시저는 이러한 컨트롤을 초기화 하 고 대화 상자를 닫을 때 컨트롤에서 값을 검색 하는 작업을 담당 합니다. 참고는 후크 프로시저는 WM_INITDIALOG 메시지 받으면 시스템은 아직 이동 하지 컨트롤 최종 위치로.

기본 대화 상자에 있는 모든 컨트롤에 대 한 메시지를 처리 하는 기본 대화 상자 프로시저가 있지만 후크 프로시저 수신 된 탐색기 스타일 후크 프로시저 에 설명 된 대로 이러한 컨트롤에 대 한 사용자 작업에 대 한 WM_NOTIFY 알림 메시지.

 

Index