Freigeben über


WNDCLASSEXW-Struktur (winuser.h)

Enthält Informationen zur Fensterklasse. Sie wird mit den Funktionen RegisterClassEx und GetClassInfoEx verwendet.

Die WNDCLASSEX-Struktur ähnelt der WNDCLASS-Struktur . Es gibt zwei Unterschiede. WNDCLASSEX umfasst das element cbSize , das die Größe der Struktur angibt, und das hIconSm-Element , das ein Handle zu einem kleinen Symbol enthält, das der Fensterklasse zugeordnet ist.

Syntax

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;

Member

cbSize

Typ: UINT

Die Größe (in Bytes) dieser Struktur. Legen Sie dieses Element auf fest sizeof(WNDCLASSEX). Stellen Sie sicher, dass Sie diesen Member festlegen, bevor Sie die GetClassInfoEx-Funktion aufrufen.

style

Typ: UINT

Die Klassenstile. Bei diesem Element kann es sich um eine beliebige Kombination der Klassenstile handeln.

lpfnWndProc

Typ: WNDPROC

Ein Zeiger auf die Fensterprozedur. Sie müssen die CallWindowProc-Funktion verwenden, um die Fensterprozedur aufzurufen. Weitere Informationen finden Sie unter WindowProc.

cbClsExtra

Typ: int

Die Anzahl der zusätzlichen Bytes, die nach der Window-Klassenstruktur zugeordnet werden sollen. Das System initialisiert die Bytes auf null.

cbWndExtra

Typ: int

Die Anzahl der zusätzlichen Bytes, die nach dem Fenster instance zugeordnet werden sollen. Das System initialisiert die Bytes auf null. Wenn eine Anwendung WNDCLASSEX verwendet, um ein Dialogfeld zu registrieren, das mithilfe der CLASS-Anweisung in der Ressourcendatei erstellt wurde, muss sie diesen Member auf DLGWINDOWEXTRA festlegen.

hInstance

Typ: HINSTANCE

Ein Handle für die instance, das die Fensterprozedur für die -Klasse enthält.

hIcon

Typ: HICON

Ein Handle für das Klassensymbol. Dieses Element muss ein Handle für eine Symbolressource sein. Wenn dieses Element NULL ist, stellt das System ein Standardsymbol bereit.

hCursor

Typ: HCURSOR

Ein Handle für den Klassencursor. Dieses Element muss ein Handle für eine Cursorressource sein. Wenn dieses Element NULL ist, muss eine Anwendung die Cursorform explizit festlegen, wenn sich die Maus in das Fenster der Anwendung bewegt.

hbrBackground

Typ: HBRUSH

Ein Handle für den Klassenhintergrundpinsel. Dieses Element kann ein Handle für den Pinsel sein, der zum Malen des Hintergrunds verwendet werden soll, oder es kann sich um einen Farbwert handelt. Ein Farbwert muss eine der folgenden Standardsystemfarben sein (der Wert 1 muss der ausgewählten Farbe hinzugefügt werden). Wenn ein Farbwert angegeben wird, müssen Sie ihn in einen der folgenden HBRUSH-Typen konvertieren:

  • 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
Das System löscht Klassenhintergrundpinsel automatisch, wenn die Registrierung der Klasse mithilfe von UnregisterClass aufgehoben wird. Eine Anwendung sollte diese Pinsel nicht löschen.

Wenn dieses Element NULL ist, muss eine Anwendung ihren eigenen Hintergrund zeichnen, wenn sie aufgefordert wird, in ihrem Clientbereich zu malen. Um zu bestimmen, ob der Hintergrund gezeichnet werden muss, kann eine Anwendung entweder die WM_ERASEBKGND Nachricht verarbeiten oder das fErase-Element der PAINTSTRUCT-Struktur testen, die von der BeginPaint-Funktion gefüllt ist.

lpszMenuName

Typ: LPCTSTR

Zeiger auf eine NULL-Zeichenfolge, die den Ressourcennamen des Klassenmenüs angibt, wenn der Name in der Ressourcendatei angezeigt wird. Wenn Sie zum Identifizieren des Menüs eine ganze Zahl verwenden, verwenden Sie das MAKEINTRESOURCE-Makro . Wenn dieses Element NULL ist, verfügen Fenster, die zu dieser Klasse gehören, über kein Standardmenü.

lpszClassName

Typ: LPCTSTR

Ein Zeiger auf eine null-beendete Zeichenfolge oder ist ein Atom. Wenn es sich bei diesem Parameter um ein Atom handelt, muss es sich um ein Klassenatom handeln, das durch einen vorherigen Aufruf der RegisterClass - oder RegisterClassEx-Funktion erstellt wurde. Das Atom muss sich in der niedrigen Reihenfolge des Worts lpszClassName befinden; das wort mit hoher Ordnung muss 0 sein.

Wenn lpszClassName eine Zeichenfolge ist, wird der Name der Fensterklasse angegeben. Der Klassenname kann ein beliebiger Name sein, der mit RegisterClass oder RegisterClassEx registriert ist, oder einen der vordefinierten Steuerelementklassennamen.

Die maximale Länge für lpszClassName beträgt 256. Wenn lpszClassName größer als die maximale Länge ist, schlägt die RegisterClassEx-Funktion fehl.

hIconSm

Typ: HICON

Ein Handle für ein kleines Symbol, das der Fensterklasse zugeordnet ist. Wenn dieses Element NULL ist, durchsucht das System die vom hIcon-Member angegebene Symbolressource nach einem Symbol der entsprechenden Größe, die als kleines Symbol verwendet werden soll.

Bemerkungen

Hinweis

Der winuser.h-Header definiert WNDCLASSEX als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Kopfzeile winuser.h (einschließlich Windows.h)

Siehe auch

Konzept

GetClassInfoEx

Referenz

RegisterClassEx

Aufheben der RegistrierungKlasse

Fensterklassen