DialogBoxIndirectA 매크로(winuser.h)
메모리의 대화 상자 템플릿에서 모달 대화 상자를 만듭니다. DialogBoxIndirect 지정된 콜백 함수가 EndDialog 함수를 호출하여 모달 대화 상자를 종료할 때까지 컨트롤을 반환하지 않습니다.
DialogBoxIndirectDialogBoxIndirectParam 함수에 대한 호출로 구현됩니다.
통사론
void DialogBoxIndirectA(
[in, optional] hInstance,
[in] lpTemplate,
[in, optional] hWndParent,
[in, optional] lpDialogFunc
);
매개 변수
[in, optional] hInstance
형식: HINSTANCE
대화 상자를 만드는 모듈에 대한 핸들입니다.
[in] lpTemplate
형식: LPCDLGTEMPLATE
dialogBoxIndirect 대화 상자를 만드는 데 사용하는 템플릿입니다. 대화 상자 템플릿은 대화 상자를 설명하는 헤더와 대화 상자의 각 컨트롤을 설명하는 하나 이상의 추가 데이터 블록으로 구성됩니다. 템플릿은 표준 형식 또는 확장 형식을 사용할 수 있습니다.
대화 상자의 표준 템플릿에서 헤더는 DLGTEMPLATE 구조와 추가 가변 길이 배열입니다. 각 컨트롤의 데이터는 DLGITEMTEMPLATE 구조와 추가 가변 길이 배열로 구성됩니다.
대화 상자의 확장 템플릿에서 헤더는 DLGTEMPLATEEX 형식을 사용하고 컨트롤 정의는 DLGITEMTEMPLATEEX 형식을 사용합니다.
[in, optional] hWndParent
형식: HWND
대화 상자를 소유하는 창에 대한 핸들입니다.
[in, optional] lpDialogFunc
형식: DLGPROC
대화 상자 프로시저에 대한 포인터입니다. 대화 상자 프로시저에 대한 자세한 내용은 dialogProc
반환 값
없음
발언
DialogBoxIndirect 매크로는 CreateWindowEx 함수를 사용하여 대화 상자를 만듭니다. DialogBoxIndirect 대화 상자 프로시저에 WM_INITDIALOG 메시지를 보냅니다. 템플릿이 DS_SETFONT 또는 DS_SHELLFONT 스타일을 지정하는 경우 함수는 대화 상자 프로시저에도 WM_SETFONT 메시지를 보냅니다. 이 함수는 템플릿이 WS_VISIBLE 스타일을 지정하는지 여부에 관계없이 대화 상자를 표시하고, 소유자 창을 사용하지 않도록 설정하고, 대화 상자에 대한 메시지를 검색하고 디스패치하는 자체 메시지 루프를 시작합니다.
대화 상자 프로시저가
표준 대화 상자 템플릿에서 DLGTEMPLATE 구조체와 각 DLGITEMTEMPLATE 구조는 DWORD 경계에 맞춰야 합니다. DLGITEMTEMPLATE 구조 뒤에 있는 생성 데이터 배열도 DWORD 경계에 맞춰야 합니다. 템플릿의 다른 모든 가변 길이 배열은 WORD 경계에 맞춰야 합니다.
확장 대화 상자 템플릿에서 DLGTEMPLATEEX 헤더와 각 DLGITEMTEMPLATEEX 컨트롤 정의는 DWORD 경계에 맞춰야 합니다. DLGITEMTEMPLATEEX 구조 뒤에 있는 생성 데이터 배열도 DWORD 경계에 맞춰야 합니다. 템플릿의 다른 모든 가변 길이 배열은 WORD 경계에 맞춰야 합니다.
대화 상자 서식 파일의 모든 문자열(예: 대화 상자 및 단추의 제목)은 유니코드 문자열이어야 합니다. MultiByteToWideChar 함수를 사용하여 ANSI 문자열에서 유니코드 문자열을 생성합니다.
예제
예제는 메모리템플릿 만들기를 참조하세요.
메모
winuser.h 헤더는 DIALOGBoxIndirect를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | winuser.h(Windows.h 포함) |
라이브러리 | User32.lib |
DLL | User32.dll |
참고 항목
개념
CreateWindowEx
DLGITEMTEMPLATE
DLGTEMPLATE
DLGTEMPLATEEX
multiByteToWideChar
기타 리소스
참조