CreateDialogIndirectParamA 함수(winuser.h)

메모리의 대화 상자 템플릿에서 모덜리스 대화 상자를 만듭니다. 대화 상자를 표시하기 전에 함수는 애플리케이션 정의 값을 대화 상자 프로시저에 WM_INITDIALOG 메시지의 lParam 매개 변수로 전달합니다. 애플리케이션은 이 값을 사용하여 대화 상자 컨트롤을 초기화할 수 있습니다.

구문

HWND CreateDialogIndirectParamA(
  [in, optional] HINSTANCE       hInstance,
  [in]           LPCDLGTEMPLATEA lpTemplate,
  [in, optional] HWND            hWndParent,
  [in, optional] DLGPROC         lpDialogFunc,
  [in]           LPARAM          dwInitParam
);

매개 변수

[in, optional] hInstance

형식: HINSTANCE

대화 상자 템플릿이 포함된 모듈에 대한 핸들입니다. 이 매개 변수가 NULL이면 현재 실행 파일이 사용됩니다.

[in] lpTemplate

형식: LPCDLGTEMPLATE

CreateDialogIndirectParam 템플릿은 를 사용하여 대화 상자를 만듭니다. 대화 상자 템플릿은 대화 상자를 설명하는 헤더와 대화 상자의 각 컨트롤을 설명하는 하나 이상의 추가 데이터 블록으로 구성됩니다. 템플릿은 표준 형식 또는 확장 형식을 사용할 수 있습니다.

표준 템플릿에서 헤더는 DLGTEMPLATE 구조체와 추가 가변 길이 배열입니다. 각 컨트롤의 데이터는 DLGITEMTEMPLATE 구조체와 추가 가변 길이 배열로 구성됩니다.

확장 대화 상자 템플릿에서 헤더는 DLGTEMPLATEEX 형식을 사용하고 컨트롤 정의는 DLGITEMTEMPLATEEX 형식을 사용합니다.

CreateDialogIndirectParam이 반환되면 대화 상자를 시작하는 데만 사용되는 템플릿을 해제할 수 있습니다.

[in, optional] hWndParent

형식: HWND

대화 상자를 소유하는 창에 대한 핸들입니다.

[in, optional] lpDialogFunc

형식: DLGPROC

대화 상자 프로시저에 대한 포인터입니다. 대화 상자 프로시저에 대한 자세한 내용은 DialogProc을 참조하세요.

[in] dwInitParam

형식: LPARAM

WM_INITDIALOG 메시지의 lParam 매개 변수에 있는 대화 상자에 전달할 값입니다.

반환 값

형식: HWND

함수가 성공하면 반환 값은 대화 상자에 대한 창 핸들입니다.

함수가 실패하면 반환 값은 NULL입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

CreateDialogIndirectParam 함수는 CreateWindowEx 함수를 사용하여 대화 상자를 만듭니다. 그런 다음 CreateDialogIndirectParam 은 대화 상자 프로시저에 WM_INITDIALOG 메시지를 보냅니다. 템플릿이 DS_SETFONT 또는 DS_SHELLFONT 스타일을 지정하는 경우 함수는 대화 상자 프로시저에도 WM_SETFONT 메시지를 보냅니다. 템플릿이 WS_VISIBLE 스타일을 지정하면 함수가 대화 상자를 표시합니다. 마지막으로 CreateDialogIndirectParam 은 대화 상자에 창 핸들을 반환합니다.

CreateDialogIndirectParam이 반환되면 ShowWindow 함수를 사용하여 대화 상자를 표시할 수 있습니다(아직 표시되지 않은 경우). 대화 상자를 삭제하려면 DestroyWindow 함수를 사용합니다. 키보드 탐색 및 기타 대화 상자 기능을 지원하려면 대화 상자의 메시지 루프가 IsDialogMessage 함수를 호출해야 합니다.

표준 대화 상자 템플릿에서 DLGTEMPLATE 구조체와 각 DLGITEMTEMPLATE 구조체는 DWORD 경계에 맞춰야 합니다. DLGITEMTEMPLATE 구조 뒤에 있는 생성 데이터 배열도 DWORD 경계에 맞춰야 합니다. 템플릿의 다른 모든 가변 길이 배열은 WORD 경계에 맞춰야 합니다.

확장 대화 상자 템플릿에서 DLGTEMPLATEEX 헤더와 각 DLGITEMTEMPLATEEX 컨트롤 정의는 DWORD 경계에 맞춰야 합니다. DLGITEMTEMPLATEEX 구조 뒤에 있는 생성 데이터 배열(있는 경우)도 DWORD 경계에 맞춰야 합니다. 템플릿의 다른 모든 가변 길이 배열은 WORD 경계에 맞춰야 합니다.

대화 상자 및 단추의 제목과 같은 대화 상자 템플릿의 모든 문자열은 유니코드 문자열이어야 합니다.

참고

winuser.h 헤더는 CREATEDialogIndirectParam을 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 winuser.h(Windows.h 포함)
라이브러리 User32.lib
DLL User32.dll
API 세트 ext-ms-win-ntuser-dialogbox-l1-1-0(Windows 8에 도입됨)

추가 정보

개념

CreateDialog

CreateDialogIndirect

CreateDialogParam

CreateWindowEx

DLGITEMTEMPLATE

DLGITEMTEMPLATEEX

DLGTEMPLATE

DLGTEMPLATEEX

DestroyWindow

대화 상자

DialogProc

MultiByteToWideChar

기타 리소스

참조

Showwindow

WM_INITDIALOG

WM_SETFONT