DLGTEMPLATE 구조체(winuser.h)

대화 상자의 차원과 스타일을 정의합니다. 대화 상자의 표준 템플릿에서 항상 첫 번째 구조체인 이 구조체는 대화 상자의 컨트롤 수를 지정하므로 템플릿의 후속 DLGITEMTEMPLATE 구조체 수를 지정합니다.

구문

typedef struct {
  DWORD style;
  DWORD dwExtendedStyle;
  WORD  cdit;
  short x;
  short y;
  short cx;
  short cy;
} DLGTEMPLATE;

멤버

style

형식:DWORD

대화 상자의 스타일입니다. 이 멤버는 창 스타일 값 (예: WS_CAPTIONWS_SYSMENU)과 대화 상자 스타일 값 (예: DS_CENTER)의 조합일 수 있습니다.

스타일 멤버에 DS_SETFONT 스타일이 포함된 경우 대화 상자 템플릿의 머리글에는 클라이언트 영역의 텍스트에 사용할 글꼴과 대화 상자의 컨트롤을 지정하는 추가 데이터가 포함됩니다. 글꼴 데이터는 제목 배열 뒤에 있는 WORD 경계에서 시작됩니다. 글꼴 데이터는 16비트 포인트 크기 값과 유니코드 글꼴 이름 문자열을 지정합니다. 가능하면 시스템에서 지정된 값에 따라 글꼴을 만듭니다. 그런 다음 시스템은 대화 상자와 각 컨트롤에 WM_SETFONT 메시지를 보내 글꼴에 대한 핸들을 제공합니다. DS_SETFONT 지정하지 않으면 대화 상자 템플릿에 글꼴 데이터가 포함되지 않습니다.

DS_SHELLFONT 스타일은 DLGTEMPLATE 헤더에서 지원되지 않습니다.

dwExtendedStyle

형식:DWORD

창의 확장 스타일입니다. 이 멤버는 대화 상자를 만드는 데 사용되지 않지만 대화 상자 템플릿을 사용하는 애플리케이션은 이 멤버를 사용하여 다른 유형의 창을 만들 수 있습니다. 값 목록은 확장 창 스타일을 참조하세요.

cdit

형식: WORD

대화 상자의 항목 수입니다.

x

형식: short

대화 상자의 왼쪽 위 모서리에 있는 x 좌표(대화 상자 단위)입니다.

y

형식: short

대화 상자의 왼쪽 위 모서리에 있는 대화 상자 단위의 y 좌표입니다.

cx

형식: short

대화 상자의 너비(대화 상자 단위)입니다.

cy

형식: short

대화 상자의 높이(대화 상자 단위)입니다.

설명

대화 상자의 표준 템플릿에서 DLGTEMPLATE 구조는 항상 바로 뒤에 대화 상자의 메뉴, 클래스 및 제목을 지정하는 세 개의 가변 길이 배열이 옵니다. DS_SETFONT 스타일을 지정하면 이러한 배열 뒤에 점 크기를 지정하는 16비트 값과 서체 이름을 지정하는 다른 가변 길이 배열도 옵니다. 각 배열은 하나 이상의 16비트 요소로 구성됩니다. 메뉴, 클래스, 제목 및 글꼴 배열은 WORD 경계에 맞춰야 합니다.

DLGTEMPLATE 구조 바로 다음에는 대화 상자의 메뉴 리소스를 식별하는 메뉴 배열이 있습니다. 이 배열의 첫 번째 요소가 0x0000 경우 대화 상자에 메뉴가 없고 배열에 다른 요소가 없습니다. 첫 번째 요소가 0xFFFF 경우 배열에는 실행 파일에서 메뉴 리소스의 서수 값을 지정하는 추가 요소가 하나 있습니다. 첫 번째 요소에 다른 값이 있으면 시스템은 배열을 실행 파일의 메뉴 리소스 이름을 지정하는 null로 끝나는 유니코드 문자열로 처리합니다.

메뉴 배열 다음에는 대화 상자의 창 클래스를 식별하는 클래스 배열이 있습니다. 배열의 첫 번째 요소가 0x0000 경우 시스템은 대화 상자에 미리 정의된 대화 상자 클래스를 사용하고 배열에는 다른 요소가 없습니다. 첫 번째 요소가 0xFFFF 경우 배열에는 미리 정의된 시스템 창 클래스의 서수 값을 지정하는 추가 요소가 하나 있습니다. 첫 번째 요소에 다른 값이 있으면 시스템은 배열을 등록된 창 클래스의 이름을 지정하는 null로 끝나는 유니코드 문자열로 처리합니다.

클래스 배열 다음에는 대화 상자의 제목이 포함된 null로 끝나는 유니코드 문자열을 지정하는 제목 배열이 있습니다. 이 배열의 첫 번째 요소가 0x0000 경우 대화 상자에 제목이 없고 배열에 다른 요소가 없습니다.

16비트 포인트 크기 값과 서체 배열은 제목 배열을 따르지만 스타일 멤버가 DS_SETFONT 스타일을 지정하는 경우에만 해당됩니다. 점 크기 값은 대화 상자의 텍스트 및 해당 컨트롤에 사용할 글꼴의 점 크기를 지정합니다. 서체 배열은 글꼴의 서체 이름을 지정하는 null로 끝나는 유니코드 문자열입니다. 이러한 값을 지정하면 시스템에서 지정한 크기와 서체가 있는 글꼴을 만들고(가능한 경우) 대화 상자 프로시저 및 컨트롤 창 프로시저에 WM_SETFONT 메시지를 보냅니다.

표준 대화 상자 템플릿의 DLGTEMPLATE 헤더 다음에는 대화 상자에서 컨트롤의 차원과 스타일을 정의하는 하나 이상의 DLGITEMTEMPLATE 구조체가 있습니다. cdit 멤버는 템플릿의 DLGITEMTEMPLATE 구조체 수를 지정합니다. 이러한 DLGITEMTEMPLATE 구조체는 DWORD 경계에 맞춰야 합니다.

메뉴, 클래스, 제목 또는 서체 배열에서 문자열을 지정하는 경우 유니코드 문자열을 사용해야 합니다.

x, y, cxcy 멤버는 대화 상자 단위의 값을 지정합니다. MapDialogRect 함수를 사용하여 이러한 값을 화면 단위(픽셀)로 변환할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
머리글 winuser.h(Windows.h 포함)

추가 정보

개념

CreateDialogIndirect

CreateDialogIndirectParam

DLGITEMTEMPLATE

DLGITEMTEMPLATEEX

DLGTEMPLATEEX

대화 상자

DialogBoxIndirect

DialogBoxIndirectParam

MapDialogRect

MultiByteToWideChar

기타 리소스

참조