WNDCLASSW-Struktur (winuser.h)

Enthält die Fensterklassenattribute, die von der RegisterClass-Funktion registriert werden.

Diese Struktur wurde durch die WNDCLASSEX-Struktur ersetzt, die mit der RegisterClassEx-Funktion verwendet wird. Sie können weiterhin WNDCLASS und RegisterClass verwenden, wenn Sie das kleine Symbol, das der Fensterklasse zugeordnet ist, nicht festlegen müssen.

Syntax

typedef struct tagWNDCLASSW {
  UINT      style;
  WNDPROC   lpfnWndProc;
  int       cbClsExtra;
  int       cbWndExtra;
  HINSTANCE hInstance;
  HICON     hIcon;
  HCURSOR   hCursor;
  HBRUSH    hbrBackground;
  LPCWSTR   lpszMenuName;
  LPCWSTR   lpszClassName;
} WNDCLASSW, *PWNDCLASSW, *NPWNDCLASSW, *LPWNDCLASSW;

Member

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 WNDCLASS 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 physischen Pinsel sein, der zum Malen 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 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

Der Ressourcenname des Klassenmenüs, wie 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 RegisterClass-Funktion fehl.

Hinweise

Hinweis

Der winuser.h-Header definiert WNDCLASS als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante 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

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 (einschließlich Windows.h)

Weitere Informationen

BeginPaint

Konzept

Createwindow

Createwindowex

GetDC

MAKEINTRESOURCE

Andere Ressourcen

PAINTSTRUCT

Referenz

Registerclass

Aufheben der RegistrierungKlasse

WM_PAINT

WNDCLASSEX

Fensterklassen

WindowProc