WNDCLASSEXW 구조체(winuser.h)

창 클래스 정보를 포함합니다. RegisterClassExGetClassInfoEx 함수와 함께 사용됩니다.

WNDCLASSEX 구조체는 WNDCLASS 구조체와 유사합니다. 두 가지 차이점이 있습니다. WNDCLASSEX 에는 구조체의 크기를 지정하는 cbSize 멤버와 창 클래스와 연결된 작은 아이콘에 대한 핸들이 포함된 hIconSm 멤버가 포함됩니다.

구문

typedef struct tagWNDCLASSEXW {
  UINT      cbSize;
  UINT      style;
  WNDPROC   lpfnWndProc;
  int       cbClsExtra;
  int       cbWndExtra;
  HINSTANCE hInstance;
  HICON     hIcon;
  HCURSOR   hCursor;
  HBRUSH    hbrBackground;
  LPCWSTR   lpszMenuName;
  LPCWSTR   lpszClassName;
  HICON     hIconSm;
} WNDCLASSEXW, *PWNDCLASSEXW, *NPWNDCLASSEXW, *LPWNDCLASSEXW;

멤버

cbSize

형식: UINT

이 구조체의 크기(바이트)입니다. 이 멤버를 로 sizeof(WNDCLASSEX)설정합니다. GetClassInfoEx 함수를 호출하기 전에 이 멤버를 설정해야 합니다.

style

형식: UINT

클래스 스타일입니다. 이 멤버는 클래스 스타일의 조합일 수 있습니다.

lpfnWndProc

형식: WNDPROC

창 프로시저에 대한 포인터입니다. CallWindowProc 함수를 사용하여 창 프로시저를 호출해야 합니다. 자세한 내용은 WindowProc을 참조하세요.

cbClsExtra

형식: int

창 클래스 구조 다음에 할당할 추가 바이트 수입니다. 시스템은 바이트를 0으로 초기화합니다.

cbWndExtra

형식: int

창 instance 다음에 할당할 추가 바이트 수입니다. 시스템은 바이트를 0으로 초기화합니다. 애플리케이션이 WNDCLASSEX 를 사용하여 리소스 파일의 CLASS 지시문을 사용하여 만든 대화 상자를 등록하는 경우 이 멤버를 DLGWINDOWEXTRA로 설정해야 합니다.

hInstance

형식: HINSTANCE

클래스의 창 프로시저를 포함하는 instance 대한 핸들입니다.

hIcon

형식: HICON

클래스 아이콘에 대한 핸들입니다. 이 멤버는 아이콘 리소스에 대한 핸들이어야 합니다. 이 멤버가 NULL이면 시스템에서 기본 아이콘을 제공합니다.

hCursor

형식: HCURSOR

클래스 커서에 대한 핸들입니다. 이 멤버는 커서 리소스에 대한 핸들이어야 합니다. 이 멤버가 NULL인 경우 마우스가 애플리케이션의 창으로 이동할 때마다 애플리케이션에서 커서 셰이프를 명시적으로 설정해야 합니다.

hbrBackground

형식: HBRUSH

클래스 배경 브러시에 대한 핸들입니다. 이 멤버는 배경을 그리는 데 사용할 브러시에 대한 핸들이거나 색 값일 수 있습니다. 색 값은 다음 표준 시스템 색 중 하나여야 합니다(값 1은 선택한 색에 추가해야 합니다). 색 값이 지정된 경우 다음 HBRUSH 형식 중 하나로 변환해야 합니다.

  • COLOR_ACTIVEBORDER
  • COLOR_ACTIVECAPTION
  • COLOR_APPWORKSPACE
  • COLOR_BACKGROUND
  • COLOR_BTNFACE
  • COLOR_BTNSHADOW
  • COLOR_BTNTEXT
  • COLOR_CAPTIONTEXT
  • COLOR_GRAYTEXT
  • COLOR_HIGHLIGHT
  • COLOR_HIGHLIGHTTEXT
  • COLOR_INACTIVEBORDER
  • COLOR_INACTIVECAPTION
  • COLOR_MENU
  • COLOR_MENUTEXT
  • COLOR_SCROLLBAR
  • COLOR_WINDOW
  • COLOR_WINDOWFRAME
  • COLOR_WINDOWTEXT
UnregisterClass를 사용하여 클래스가 등록 취소되면 시스템에서 클래스 배경 브러시를 자동으로 삭제합니다. 애플리케이션에서 이러한 브러시를 삭제하면 안 됩니다.

이 멤버가 NULL인 경우 애플리케이션은 클라이언트 영역에서 그리기를 요청할 때마다 자체 배경을 그려야 합니다. 배경을 그려야 하는지 여부를 확인하기 위해 애플리케이션은 WM_ERASEBKGND 메시지를 처리하거나 BeginPaint 함수로 채워진 PAINTSTRUCT 구조체의 fErase 멤버를 테스트할 수 있습니다.

lpszMenuName

형식: LPCTSTR

이름이 리소스 파일에 표시될 때 클래스 메뉴의 리소스 이름을 지정하는 null로 끝나는 문자열에 대한 포인터입니다. 정수 를 사용하여 메뉴를 식별하는 경우 MAKEINTRESOURCE 매크로를 사용합니다. 이 멤버가 NULL인 경우 이 클래스에 속하는 창에는 기본 메뉴가 없습니다.

lpszClassName

형식: LPCTSTR

null로 끝나는 문자열에 대한 포인터이거나 원자입니다. 이 매개 변수가 atom인 경우 RegisterClass 또는 RegisterClassEx 함수에 대한 이전 호출에서 만든 클래스 원자여야 합니다. 원자는 lpszClassName의 낮은 순서 단어에 있어야 합니다. 상위 단어는 0이어야 합니다.

lpszClassName이 문자열인 경우 창 클래스 이름을 지정합니다. 클래스 이름은 RegisterClass 또는 RegisterClassEx에 등록된 이름 또는 미리 정의된 컨트롤 클래스 이름일 수 있습니다.

lpszClassName의 최대 길이는 256입니다. lpszClassName이 최대 길이보다 크면 RegisterClassEx 함수가 실패합니다.

hIconSm

형식: HICON

창 클래스와 연결된 작은 아이콘에 대한 핸들입니다. 이 멤버가 NULL인 경우 시스템은 hIcon 멤버가 지정한 아이콘 리소스에서 작은 아이콘으로 사용할 적절한 크기의 아이콘을 검색합니다.

설명

참고

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

요구 사항

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

추가 정보

개념

GetClassInfoEx

참조

RegisterClassEx

UnregisterClass

창 클래스