WM_INITDIALOG 메시지

시스템 대화 상자 프로시저 메시지 WM_CREATE 보내지 않습니다. 대신, 대화 상자와 모든 해당 컨트롤을 만들 때만 대화 상자를 표시 하기 전에 WM_INITDIALOG 메시지를 보냅니다. 대화 상자 표시 명령 또는 작업 관련 된 현재 설정을 확인 하는 데 필요한 모든 초기화 절차를 수행 해야 합니다. 예를 들어, 현재 드라이브와 디렉터리를 표시 하려면 컨트롤을 포함 하는 대화 상자를 때 프로시저를 현재 드라이브와 디렉터리를 결정 하며 컨트롤 값을 설정 합니다.

프로시저는 SetDlgItemTextCheckDlgButton와 같은 함수를 사용 하 여 컨트롤을 초기화할 수 있습니다. 컨트롤 창 때문에 프로시저를 조작할 수도 있습니다 그들 EnableWindowSetFocus같은 창 관리 기능을 사용 하 여. 프로시저 GetDlgItem 함수를 사용 하 여 컨트롤에 대 한 창 핸들을 검색할 수 있습니다.

대화 상자 프로시저는 내용, 상태 및 필요에 따라 컨트롤의 위치를 변경할 수 있습니다. 예를 들어, 파일 및 열기 단추 목록 상자가 포함 된 대화 상자에서 프로시저를 비활성화할 수 있습니다 열기 단추 목록에서 파일을 선택할 때까지. 이 예제에서 대화 상자 템플릿 열기 단추에 대 한 WS_DISABLED 스타일을 지정 하 고 자동으로 시스템은 그것을 만들 때 단추를 비활성화 합니다. 사용자가 선택한 파일, 열기 단추를 사용할 수 있도록 EnableWindow 함수를 호출 하는 프로시저를 나타내는 목록 상자에서 대화 상자 프로시저 알림 메시지를 받을 때.

대화 상자의 캡션 표시줄에 사용자 지정 아이콘을 표시 하려면 WM_INITDIALOG 처리기는 WM_SETICON 메시지를 보낼 수 대화 상자.

응용 프로그램 DialogBoxParam, DialogBoxIndirectParam, CreateDialogParam또는 CreateDialogIndirectParam함수 중 하나를 사용 하 여 대화 상자를 만듭니다 WM_INITDIALOG 메시지의 lParam 매개 변수는 함수에 전달 하는 추가 매개 변수를 포함 합니다. 응용 프로그램은 일반적으로 추가 초기화 정보 주소 대화 상자 프로시저에 전달 하려면이 추가 매개 변수를 사용 하지만 대화 상자 프로시저는 매개 변수의 의미를 결정 해야 합니다. 시스템 응용 프로그램 대화 상자를 만드는 또 다른 함수를 사용 하는 경우 NULL lParam 매개 변수 설정.

WM_INITDIALOG 메시지에서 반환 하기 전에 프로시저는 특정된 컨트롤에 입력된 포커스를 설정 해야 하는지 여부를 결정 해야 합니다. 대화 상자 프로시저를 TRUE를 반환 하는 경우 입력된 포커스를 컨트롤의 창 핸들이 wParam 매개 변수에서를 자동으로 설정 됩니다. 기본 포커스를 받는 컨트롤 적절 한 경우 SetFocus 함수를 사용 하 여 해당 컨트롤에 포커스를 설정할 수 그것. 입력된 포커스를 설정 하는 절차, 시스템 기본 포커스를 설정 하지 않도록 하려면 FALSE를 반환 해야 합니다. 기본 수신 제어 입력 포커스 해제 하지 표시 되는 서식 파일에 지정 된 첫 번째 컨트롤은 항상 및 WS_TABSTOP 스타일. 이러한 컨트롤이 있으면 시스템 기본 입력된 포커스를 설정 합니다 서식 파일의 첫 번째 컨트롤.

 

Index