CreateWindow

CreateWindow 함수는 중첩, 팝업, 또는 자식 창을 만듭니다. 그것은 창 클래스, 창 제목, 창 스타일 및 (선택 사항) 초기 위치 및 창 크기를 지정합니다. 함수는 또한 윈도우의 부모 또는 경우, 소유자와 윈도우의 메뉴 지정.

CreateWindow지원 스타일 외에 확장된 스타일을 사용 하려면 CreateWindow 대신 CreateWindowEx 함수 사용.

HWND CreateWindow (  LPCTSTR  lpClassName, / / 포인터를 클래스 이름 등록LPCTSTRlpWindowName, / / 창 이름에 대 한 포인터DWORDdwStyle, / / 창 스타일int x, / / 가로 창의 위치 int y, / / 수직 창의 위치 intnWidth, / / 창 너비 intnHeight, / / 창 높이HWNDhWndParent, / / 부모 또는 소유자 창에 대 한 핸들HMENUhMenu, / / 메뉴 또는 자식 창 식별자에 대 한 핸들처리hInstance, / / 응용 프로그램 인스턴스에 대 한 핸들LPVOIDlpParam / / 창 생성 데이터 포인터);
 

매개 변수

lpClassName
Null로 끝나는 문자열에 대 한 포인터 또는 정수 원소입니다. 글로벌 아톰에 대 한 이전 호출에서 만든 경우이 매개 변수는 원자, 해야 합니다 GlobalAddAtom 함수. 원자, 16-비트 값 보다 작은 0xC000, lpClassName; 낮은 순서 단어에 있어야 높은 순서 단어는 0 이어야 합니다.

LpClassName 는 문자열이 면 창 클래스 이름을 지정 합니다. 클래스 이름은 어떤 이름이 RegisterClassEx 함수 또는 미리 정의 된 컨트롤 클래스 이름을 등록 될 수 있습니다. 전체 목록에 대 한 주의 섹션을 참조 하십시오.

lpWindowName
창 이름을 지정 하는 null로 끝나는 문자열에 대 한 포인터.

창 스타일 지정 제목 표시줄, lpWindowName 가 가리키는 창 타이틀 제목 표시줄에 표시 됩니다. CreateWindow 를 사용 하 여 단추, 체크 상자 및 정적 컨트롤 등의 컨트롤을 만들 때 lpWindowName 사용 하 여 컨트롤의 텍스트를 지정 합니다.

dwStyle
생성 되는 창 스타일을 지정 합니다. 이 매개 변수는 다음 창 스타일의 조합 될 수 있습니다 플러스 주의 섹션에 표시 된 컨트롤 스타일.
스타일 의미
WS_BORDER 얇은 선 테두리가 있는 창을 만듭니다.
WS_CAPTION (WS_BORDER 스타일 포함) 제목 표시줄에 있는 창을 만듭니다.
WS_CHILD 자식 창을 만듭니다. 이 스타일 WS_POPUP 스타일과 함께 사용할 수 없습니다.
WS_CHILDWINDOW WS_CHILD 스타일이 동일.
WS_CLIPCHILDREN 드로잉 부모 창 내에서 발생 하는 경우 자식 창에 의해 점령 하는 영역을 제외 합니다. 이 스타일은 부모 창을 만들 때 사용.
WS_CLIPSIBLINGS 서로 상대적으로 클립 자식 창 즉, 특정 자식 창을 받으면는 WM_PAINT 메시지 WS_CLIPSIBLINGS 스타일 클립 모든 다른 겹치는 자식 창을 업데이트 하려면 자식 창 영역의 밖으로. WS_CLIPSIBLINGS 지정 되지 않은 자식 창을 겹치는 경우 그것은 가능한 인접 자식 창의 클라이언트 영역 내에 그릴 자식 창의 클라이언트 영역 내에 그릴 때.
WS_DISABLED 처음 비활성화 된 창을 만듭니다. 비활성화 된 창의 사용자 로부터 입력을 받을 수 없습니다.
WS_DLGFRAME 일반적으로 대화 상자를 사용 하는 스타일의 테두리가 있는 창을 만듭니다. 이 스타일 창 제목 표시줄을 가질 수 없습니다.
WS_GROUP 컨트롤 그룹의 첫 번째 컨트롤로 지정합니다. 그룹이 첫 번째 컨트롤 및 WS_GROUP 스타일을 사용 하 여 다음 컨트롤을, 후 정의 된 모든 컨트롤이 구성 됩니다. 일반적으로 각 그룹의 첫 번째 컨트롤 그룹에서 그룹을 이동할 수 있도록 WS_TABSTOP 스타일을 하고있다. 사용자가 이후에 변경할 수 키보드 포커스 그룹에서 한 컨트롤에서의 그룹에서 다음 컨트롤을 방향 키를 사용 하 여.
WS_HSCROLL 가로 스크롤 막대 있는 창을 만듭니다.
WS_ICONIC 처음 최소화 된 창을 만듭니다. WS_MINIMIZE 스타일과 동일.
WS_MAXIMIZE 처음 최대화 된 창을 만듭니다.
WS_MAXIMIZEBOX 최대화 단추가 있는 창을 만듭니다. WS_EX_CONTEXTHELP 스타일을 함께 사용할 수 없습니다. WS_SYSMENU 스타일도 지정 해야 합니다.
WS_MINIMIZE 처음 최소화 된 창을 만듭니다. WS_ICONIC 스타일과 동일.
WS_MINIMIZEBOX 최소화 단추가 있는 창을 만듭니다. WS_EX_CONTEXTHELP 스타일을 함께 사용할 수 없습니다. WS_SYSMENU 스타일도 지정 해야 합니다.
WS_OVERLAPPED 겹친된 창을 만듭니다. 겹쳐진된 창 제목 표시줄과 테두리를 하고있다. WS_TILED 스타일과 동일.
WS_OVERLAPPEDWINDOW WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX, 및 WS_MAXIMIZEBOX 스타일을 가진 겹친된 창을 만듭니다. WS_TILEDWINDOW 스타일과 동일.
WS_POPUP 팝업 창을 만듭니다. 이 스타일은 WS_CHILD 스타일과 함께 사용할 수 없습니다.
WS_POPUPWINDOW WS_BORDER, WS_POPUP, 및 WS_SYSMENU 스타일 팝업 창을 만듭니다. 창 메뉴를 표시 하려면 WS_CAPTION 및 WS_POPUPWINDOW 스타일을 결합 해야 합니다.
WS_SIZEBOX 크기 조정 테두리가 있는 창을 만듭니다. WS_THICKFRAME 스타일과 동일.
WS_SYSMENU 창 메뉴의 제목 표시줄에 있는 창을 만듭니다. WS_CAPTION 스타일도 지정 해야 합니다.
WS_TABSTOP 사용자가 tab 키를 누를 때 키보드 포커스를 받을 수 있는 컨트롤을 지정 합니다. Tab 키를 누르면 키보드 포커스를이 WS_TABSTOP 스타일 다음 컨트롤로 변경.
WS_THICKFRAME 크기 조정 테두리가 있는 창을 만듭니다. WS_SIZEBOX 스타일과 동일.
WS_TILED 겹친된 창을 만듭니다. 겹쳐진된 창 제목 표시줄과 테두리를 하고있다. WS_OVERLAPPED 스타일과 동일.
WS_TILEDWINDOW WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX, 및 WS_MAXIMIZEBOX 스타일을 가진 겹친된 창을 만듭니다. WS_OVERLAPPEDWINDOW 스타일과 동일.
WS_VISIBLE 처음 표시 되는 창을 만듭니다.
WS_VSCROLL 세로 스크롤 막대 있는 창을 만듭니다.

x
창의 초기 가로 위치를 지정합니다. 중복 또는 팝업 창에 대 한 x 매개 변수는 초기 화면 좌표에서 윈도우의 왼쪽 위 모서리의 x 좌표입니다. 자식 창에 대 한 x 는 부모 창의 클라이언트 영역의 왼쪽 위 모서리를 기준으로 창의 왼쪽 위 모서리의 x 좌표입니다.

이 매개 변수가 CW_USEDEFAULT로 설정 하는 경우 시스템 윈도우의 왼쪽 위 모서리에 대 한 기본 위치를 선택 하 고 y 매개 변수를 무시 합니다. CW_USEDEFAULT 겹쳐진된 창;에 유효 팝업 또는 자식 창, xy 매개 0으로 설정 됩니다에 대해 지정 하는 경우.

y
윈도우의 초기 세로 위치를 지정합니다. 중복 또는 팝업 창에 대 한 y 매개 변수는 초기 화면 좌표에서 윈도우의 왼쪽 위 모서리의 y 좌표입니다. 자식 창에 대 한 y 초기 부모 창의 클라이언트 영역의 왼쪽 위 모서리를 기준으로 자식 창의 왼쪽 위 모서리의 y 좌표입니다. 목록 상자에 대 한 y 는 초기 부모 창의 클라이언트 영역의 왼쪽 위 모서리를 기준으로 목록 상자 클라이언트 영역의 왼쪽 위 모서리의 y 좌표입니다.

겹쳐진된 창 WS_VISIBLE 스타일 비트 세트를 사용 하 여 만든 x 매개 변수가 CW_USEDEFAULT로 설정 하는 경우 시스템 y 매개 변수를 무시 하는.

nWidth
창의 장치 단위로 너비를 지정합니다. 중복 된 윈도우에 대 한 nWidth 화면 좌표 또는 CW_USEDEFAULT 윈도우의 폭입니다. 시스템에 기본 너비 및 높이 창;를 선택 nWidth CW_USEDEFAULT 이면 기본 너비는 스크린의 오른쪽 가장자리에 초기 x 좌표에서 확장 하 고 아이콘 영역 맨 초기 y 좌표에서 확장 되는 기본 높이. CW_USEDEFAULT 겹쳐진된 창;에 유효 CW_USEDEFAULT 팝업 또는 자식 창에 대 한을 지정 하는 경우 nWidthnHeight 는 0으로 설정 됩니다.
nHeight
장치 단위로 창의 높이 지정합니다. 중복 된 윈도우에 대 한 nHeight 화면 좌표에서 창의 높이입니다. 시스템 nHeight 를 무시 nWidth CW_USEDEFAULT로 설정 하는 경우.
hWndParent
생성 되는 윈도우의 부모 또는 소유자 창에 대 한 핸들. 자식 창이 나 소유 된 창 만들기, 올바른 창 핸들을 제공 합니다. 이 매개 변수는 팝업 창에 대 한 선택 사항.

Windows NT 5.0 및 이후: 메시지 전용 창을 만들려면, HWND_MESSAGE 또는 기존 메시지 전용 창 핸들 공급.

hMenu
메뉴를 처리 하거나 창 스타일에 따라 자식 창 식별자를 지정 합니다. HMenu 창; 데 메뉴를 식별 하는 중복 된 또는 팝업 창에 대 한 그것은 클래스 메뉴는 사용 하는 경우에 NULL 일 수 있습니다. 자식 창에 대 한 hMenu 자식 창 식별자를, 이벤트에 대 한 부모를 알리는 대화 상자 컨트롤에서 사용 하는 정수 값을 지정 합니다. 응용 프로그램 결정 자식 창 식별자; 모든 자식 창을 같은 부모 창에 대 한 고유 해야.
hInstance
윈도우와 관련 된 모듈의 인스턴스 핸들.
lpParam
CREATESTRUCT 구조 창에 전달 하는 값에 대 한 포인터는 lParam 매개 변수에서 WM_CREATE 메시지 전달. LpParam CLIENTCREATESTRUCT 구조를 가리켜야는 응용 프로그램 호출 CreateWindow 다중 문서 인터페이스 (MDI) 클라이언트 창에 만들려고 하는 경우.

반환 값

함수가 성공 하면 반환 값은 새 창에 대 한 핸들.

함수가 실패 하면 반환 값은 NULL입니다. 확장 된 오류 정보를 얻을 하려면 GetLastError.

주의

반환 하기 전에 CreateWindow WM_CREATE 메시지를 창 프로시저를 보냅니다. 겹쳐진, 팝업 및 자식 창에 대 한 CreateWindow 창을 WM_CREATE, WM_GETMINMAXINFOWM_NCCREATE 메시지를 보냅니다. WM_CREATE 메시지의 lParam 매개 변수 CREATESTRUCT 구조에 대 한 포인터를 포함합니다. CreateWindow WS_VISIBLE 스타일을 지정 하는 경우 창을 활성화 하 고 창을 표시 하는 데 필요한 모든 메시지 전송.

작업 표시줄 만든된 창에 대 한 단추를 표시 하는지 여부를 제어 하는 방법은 참조 작업 표시줄 단추 표시.

다음과 같은 미리 정의 된 컨트롤 클래스는 lpClassName 매개 변수에서 지정할 수 있습니다. 참고 해당 컨트롤 스타일을 dwStyle 매개 변수에서 사용할 수 있습니다.

클래스 의미
단추 그것을 설정 하거나 해제 하려면 클릭할 수 있는 단추를 나타내는 작은 사각형 자식 창을 지정 합니다. 단독으로 또는 그룹으로 Button 컨트롤을 사용할 수 있습니다 그리고 그들을 분류 하거나 수 또는 텍스트 없이 표시 합니다. Button 컨트롤은 일반적으로 그들을 클릭할 때 모양이 변경 합니다. 자세한 내용은 다음 웹 사이트를 참조 하십시오 단추.
DwStyle 매개 변수에서 지정할 수 있는 버튼 스타일의 테이블에 대 한 단추 스타일 을 참조 하십시오.
COMBOBOX 목록 상자 및 편집 컨트롤을 비슷한 선택 필드 구성 된 컨트롤을 지정 합니다. 이 스타일을 사용 하는 경우 응용 프로그램 목록 상자 항상 표시 하거나 드롭-다운 목록 상자를 사용 해야 합니다. 목록 상자를 표시 하는 경우 입력 한 문자와 일치 하는 첫 번째 목록 상자 항목을 강조 선택 필드에 문자를 입력 합니다. 반대로, 선택 필드에서 선택한 텍스트를 표시 목록 상자에서 항목을 선택 합니다. 자세한 내용은 다음 웹 사이트를 참조 하십시오. 콤보 상자.
DwStyle 매개 변수에서 지정할 수 있는 콤보 상자 스타일의 테이블에 대 한 콤보 상자 스타일 을 참조 하십시오.
편집 사용자는 키보드에서 텍스트를 입력할 수 사각형 자식 창을 지정 합니다. 사용자는 컨트롤을 선택 하 고 그것을 클릭 하거나 tab 키를 눌러 이동 하 여 키보드 포커스를 제공 합니다. 사용자 편집 컨트롤 표시 깜박이 캐럿; 텍스트를 입력할 수 있습니다. 마우스를 사용 하 여 선택 문자 대체 될 또는 문자; 삽입 커서를 커서 이동 또는 백스페이스 키를 사용 하 여 문자를 삭제 합니다. 자세한 내용은 다음 웹 사이트를 참조 하십시오. 편집 컨트롤.
DwStyle 매개 변수에서 지정할 수 있는 편집 컨트롤 스타일의 테이블에 대 한 컨트롤 스타일 편집 을 참조 하십시오.
LISTBOX 문자열의 목록을 지정합니다. 응용 프로그램 사용자가 선택할 수 있는 파일와 같은 이름의 목록을 제시 해야 합니다 때마다이 컨트롤을 지정 합니다. 사용자는 그것을 클릭 하 여 문자열을 선택할 수 있습니다. 선택한 문자열, 강조 표시 하 고 알림 메시지가 부모 창에 전달 됩니다. 자세한 내용은 다음 웹 사이트를 참조 하십시오. 목록 상자.
DwStyle 매개 변수에서 지정할 수 있는 목록 상자 스타일의 테이블에 대 한 다음 웹 사이트를 참조 하십시오 목록 상자 스타일.
MDICLIENT MDI 클라이언트 창을 지정합니다. 이 창은 MDI 응용 프로그램의 자식 창을 제어 하는 메시지를 받습니다. 권장된 스타일 비트는 WS_CLIPCHILDREN 및 WS_CHILD입니다. 사용자가 보기에 MDI 자식 창을 스크롤할 수 있는 MDI 클라이언트 창을 만들지 WS_HSCROLL 및 WS_VSCROLL 스타일을 지정 합니다. 자세한 내용은 다음 웹 사이트를 참조 하십시오 다중 문서 인터페이스.
RichEdit Rich Edit 버전 1.0 컨트롤을 지정합니다. 이 창 수 사용자 보기 문자 및 단락 서식 있는 텍스트를 편집 하 고 포함 된 COM 개체를 포함할 수 있습니다. 자세한 내용은 다음 웹 사이트를 참조 하십시오. 풍부한 편집 컨트롤.
DwStyle 매개 변수에서 지정할 수 있는 풍부한 편집 컨트롤 스타일의 테이블에 대 한 풍부한 편집 컨트롤 스타일 참조.
RICHEDIT_CLASS Rich Edit 버전 2.0 컨트롤을 지정합니다. 이 컨트롤 사용자 보기 하자 문자 및 단락 서식 있는 텍스트를 편집 하 고 포함 된 COM 개체를 포함할 수 있습니다. 자세한 내용은 다음 웹 사이트를 참조 하십시오. 풍부한 편집 컨트롤.
DwStyle 매개 변수에서 지정할 수 있는 풍부한 편집 컨트롤 스타일의 테이블에 대 한 풍부한 편집 컨트롤 스타일 참조.
SCROLLBAR 스크롤 상자를 포함 하며 방향 화살표가 양쪽 끝에 있는 사각형을 지정 합니다. 스크롤 막대 컨트롤을 마우스 오른쪽 단추로 클릭할 때마다 부모 창에 알림 메시지를 보냅니다. 필요한 경우 부모 창은 스크롤 상자의 위치를 업데이트 하는 작업을 담당 합니다. 자세한 내용은 다음 웹 사이트를 참조 하십시오. 스크롤 막대.
DwStyle 매개 변수에서 지정할 수 있는 스크롤 막대 컨트롤 스타일의 테이블에 대 한 스크롤 막대 컨트롤 스타일 을 참조 하십시오.
정적 간단한 텍스트 필드, 상자 또는 레이블, 상자 또는 다른 컨트롤을 구분 하는 데 사용 하는 사각형을 지정 합니다. 정적 컨트롤 입력 걸리고 아무 출력을 제공 합니다. 자세한 내용은 다음 웹 사이트를 참조 하십시오. 정적 컨트롤.
DwStyle 매개 변수에서 지정할 수 있는 정적 컨트롤 스타일의 테이블에 대 한 정적 컨트롤 스타일 을 참조 하십시오.

Windows 95:시스템 최대 16,364 창 핸들을 지원할 수 있습니다.

메모 ?응용 프로그램을 연결 하는 경우 Windows 버전 4.x를 지정 하는 경우에 자사의 윈도우 하지 않는 한 그들은 또한 창 메뉴 캡션 단추에 가질 수 없습니다. 이것은 요구 사항은 응용 프로그램을 연결 하는 경우 Windows 버전 3.x를 지정 하는 경우.

Windows CE: CreateWindow 매크로로 구현 됩니다. CreateWindowEx, 하지만 dwExStyle 매개 변수가 0 L로 설정 정의.

메뉴 모음을 지원 하지 않습니다. 자식 창 식별자로 사용 하지 않으면 hMenu 매개 변수가 NULL 이어야.

MDICLIENT 창 클래스는 지원 되지 않습니다.

DwStyle 매개 변수 창 스타일의 조합이 될 수 있습니다 및에서 설명 하는 컨트롤 스타일:

대화 상자

윈도우

컨트롤

윈도 즈를 위해 지원 되는 다음 dwStyle 플래그:

WS_CHILDWINDOW WS_ICONIC
WS_MAXIMIZE WS_MAXIMIZEBOX
WS_MINIMIZE WS_MINIMIZEBOX
WS_OVERLAPPEDWINDOW WS_POPUPWINDOW
WS_SIZEBOX WS_THICKFRAME
WS_TILED WS_TILEDWINDOW

컨트롤 및 대화 상자에 대 한 지원 되는 다음 dwStyle 플래그:

지원 되지 않는 단추 스타일 지원 되지 않는 정적 컨트롤 스타일
BS_LEFTTEXT SS_BLACKFRAME
BS_MULTILINE SS_GRAYFRAME
BS_TEXT SS_METAPICT
BS_USERBUTTON SS_SIMPLE
지원 되지 않는 콤보 상자 스타일 SS_WHITERECT
CBS_OWNERDRAWFIXED SS_BLACKRECT
CBS_OWNERDRAWVARIABLE SS_GRAYRECT
CBS_SIMPLE SS_RIGHTIMAGE
지원 되지 않는 목록 상자 컨트롤 스타일 SS_WHITEFRAME
LBS_NODATA 지원 되지 않는 대화 상자 스타일
LBS_OWNERDRAWFIXED DS_ABSALIGN
LBS_OWNERDRAWVARIABLE DS_CENTERMOUSE
LBS_STANDARD DS_CONTEXTHELP
지원 되지 않는 스크롤 막대 스타일 DS_FIXEDSYS
SBS_BOTTOMALIGN DS_NOFAILCREATE
SBS_RIGHTALIGN DS_NOIDLEMSG
SBS_SIZEBOXBOTTOMRIGHTALIGN DS_SYSMODAL
SBS_SIZEGRIP

BS_OWNERDRAW 스타일을 사용 하 여 BS_USERBUTTON 스타일에 대 한 대용으로 수 있습니다.

정적 컨트롤에 대 한 SS_SIMPLE 스타일 대신 SS_LEFT 또는 SS_LEFTNOWORDWRAP 스타일을 사용할 수 있습니다...

MDICLIENT 창 클래스는 지원 되지 않습니다.

모든 창을 암시적으로 WS_CLIPSIBLINGS 및 WS_CLIPCHILDREN 스타일을가지고.

Windows CE 1.0는 제외 하 고 대화 상자에 대 한 소유 windows를 지원 하지 않습니다. 창 WS_CHILD 스타일을 암시적으로 주어진 hwndParent 매개 변수가 NULL 인 경우.

Windows CE 버전 1.0 메뉴 모음을 지원 하지 않습니다.

QuickInfo

nbsp;?Windows &NT: 버전 3.1 이상이 필요 합니다.
Windows:Windows 95 이상이 필요합니다.
Windows CE:버전 1.0 이상이 필요합니다.
헤더:Winuser.h에서 선언합니다.
가져오기 라이브러리:User32.lib를 사용 합니다.
유니코드:Windows NT에서 유니코드와 ANSI 버전으로 구현.

참고 항목

Windows 개요, 창 기능, CLIENTCREATESTRUCT, CREATESTRUCT, CreateWindowEx, GlobalAddAtom, RegisterClassEx WM_COMMAND, WM_CREATE, WM_GETMINMAXINFO, WM_NCCREATE, WM_PAINT

 

Index