Freigeben über


WNDCLASSEXA-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 enthält den cbSize-Member , der die Größe der Struktur angibt, und den hIconSm-Member , der ein Handle für ein kleines Symbol enthält, das der Fensterklasse zugeordnet ist.

Syntax

typedef struct tagWNDCLASSEXA {
  UINT      cbSize;
  UINT      style;
  WNDPROC   lpfnWndProc;
  int       cbClsExtra;
  int       cbWndExtra;
  HINSTANCE hInstance;
  HICON     hIcon;
  HCURSOR   hCursor;
  HBRUSH    hbrBackground;
  LPCSTR    lpszMenuName;
  LPCSTR    lpszClassName;
  HICON     hIconSm;
} WNDCLASSEXA, *PWNDCLASSEXA, *NPWNDCLASSEXA, *LPWNDCLASSEXA;

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 Member 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-Class-Struktur 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 dieses Element 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. Dieser Member muss ein Handle für eine Symbolressource sein. Wenn dieser Member NULL ist, stellt das System ein Standardsymbol bereit.

hCursor

Typ: HCURSOR

Ein Handle für den Klassencursor. Dieser Member muss ein Handle für eine Cursorressource sein. Wenn dieser Member NULL ist, muss eine Anwendung die Cursorform explizit festlegen, wenn die Maus in das Fenster der Anwendung wechselt.

hbrBackground

Typ: HBRUSH

Ein Handle für den Klassenhintergrundpinsel. Dieser Member kann ein Ziehpunkt für den Pinsel sein, der zum Zeichnen des Hintergrunds verwendet werden soll, oder es kann ein Farbwert sein. 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 automatisch Klassenhintergrundpinsel, wenn die Registrierung der Klasse mithilfe von UnregisterClass aufgehoben wird. Eine Anwendung sollte diese Pinsel nicht löschen.

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

lpszMenuName

Typ: LPCTSTR

Ein Zeiger auf eine NULL-endende Zeichenfolge, die den Ressourcennamen des Klassenmenüs angibt, wie der Name in der Ressourcendatei angezeigt wird. Wenn Sie eine ganze Zahl verwenden, um das Menü zu identifizieren, verwenden Sie das MAKEINTRESOURCE-Makro . Wenn dieser Member NULL ist, haben Fenster, die zu dieser Klasse gehören, kein Standardmenü.

lpszClassName

Typ: LPCTSTR

Ein Zeiger auf eine NULL-endende 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 (null) sein.

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

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 zu einem kleinen Symbol, das der Fensterklasse zugeordnet ist. Wenn dieser Member NULL ist, durchsucht das System die vom hIcon-Member angegebene Symbolressource nach einem Symbol der entsprechenden Größe, das als kleines Symbol verwendet werden soll.

Hinweise

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 Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

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

Siehe auch

Konzept

GetClassInfoEx

Referenz

RegisterClassEx

UnregisterClass

Fensterklassen