SetClassLongA-Funktion (winuser.h)

Ersetzt den angegebenen 32-Bit-Wert (long) am angegebenen Offset in den zusätzlichen Klassenspeicher oder die WNDCLASSEX-Struktur für die Klasse, zu der das angegebene Fenster gehört.

Hinweis Diese Funktion wurde durch die SetClassLongPtr-Funktion abgelöst. Verwenden Sie SetClassLongPtr, um Code zu schreiben, der sowohl mit 32-Bit- als auch mit 64-Bit-Versionen von Windows kompatibel ist.
 

Syntax

DWORD SetClassLongA(
  [in] HWND hWnd,
  [in] int  nIndex,
  [in] LONG dwNewLong
);

Parameter

[in] hWnd

Typ: HWND

Ein Handle für das Fenster und indirekt die Klasse, zu der das Fenster gehört.

[in] nIndex

Typ: int

Der zu ersetzende Wert. Um einen 32-Bit-Wert im zusätzlichen Klassenspeicher festzulegen, geben Sie den positiven, nullbasierten Byteoffset des festzulegenden Werts an. Gültige Werte liegen im Bereich 0 bis zur Anzahl der Bytes des zusätzlichen Klassenspeichers, minus vier; Wenn Sie beispielsweise 12 oder mehr Bytes zusätzlichen Klassenspeicher angeben, wäre der Wert 8 ein Index für die dritte 32-Bit-Ganzzahl. Geben Sie einen der folgenden Werte an, um einen anderen Wert aus der WNDCLASSEX-Struktur festzulegen.

Wert Bedeutung
GCL_CBCLSEXTRA
-20
Legt die Größe des zusätzlichen Arbeitsspeichers in Bytes fest, der der -Klasse zugeordnet ist. Das Festlegen dieses Werts ändert nicht die Anzahl der zusätzlichen Bytes, die bereits zugeordnet sind.
GCL_CBWNDEXTRA
–18
Legt die Größe des zusätzlichen Fensterspeichers in Bytes fest, der jedem Fenster in der -Klasse zugeordnet ist. Das Festlegen dieses Werts ändert nicht die Anzahl der zusätzlichen Bytes, die bereits zugeordnet sind. Informationen zum Zugreifen auf diesen Arbeitsspeicher finden Sie unter SetWindowLong.
GCL_HBRBACKGROUND
-10
Ersetzt ein Handle durch den Hintergrundpinsel, der der -Klasse zugeordnet ist.
GCL_HCURSOR
-12
Ersetzt ein Handle durch den Cursor, der der -Klasse zugeordnet ist.
GCL_HICON
-14
Ersetzt ein Handle durch das Symbol, das der Klasse zugeordnet ist.
GCL_HICONSM
-34
Ersetzen Sie ein Handle durch das kleine Symbol, das der Klasse zugeordnet ist.
GCL_HMODULE
-16
Ersetzt ein Handle durch das Modul, das die -Klasse registriert hat.
GCL_MENUNAME
-8
Ersetzt die Adresse der Menünamenszeichenfolge. Die Zeichenfolge identifiziert die Menüressource, die der -Klasse zugeordnet ist.
GCL_STYLE
-26
Ersetzt die Fensterklassenstilbits.
GCL_WNDPROC
-24
Ersetzt die Adresse der Fensterprozedur, die der -Klasse zugeordnet ist.

[in] dwNewLong

Typ: LONG

Der Ersetzungswert.

Rückgabewert

Art: DWORD

Wenn die Funktion erfolgreich ist, ist der Rückgabewert der vorherige Wert der angegebenen 32-Bit-Ganzzahl. Wenn der Wert zuvor nicht festgelegt wurde, ist der Rückgabewert 0 (null).

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Bemerkungen

Wenn Sie die SetClassLong-Funktion und den GCL_WNDPROC Index verwenden, um die Fensterprozedur zu ersetzen, muss die Fensterprozedur den Richtlinien entsprechen, die in der Beschreibung der WindowProc-Rückruffunktion angegeben sind.

Durch Aufrufen von SetClassLong mit dem GCL_WNDPROC Index wird eine Unterklasse der Fensterklasse erstellt, die sich auf alle Fenster auswirkt, die anschließend mit der -Klasse erstellt wurden. Eine Anwendung kann eine Systemklasse unterklassen, sollte aber keine Unterklasse einer Fensterklasse sein, die von einem anderen Prozess erstellt wurde.

Reservieren Sie zusätzlichen Klassenspeicher, indem Sie einen Wert ungleich null im cbClsExtra-Member der WNDCLASSEX-Struktur angeben, die mit der RegisterClassEx-Funktion verwendet wird.

Verwenden Sie die SetClassLong-Funktion mit Sorgfalt. Beispielsweise ist es möglich, die Hintergrundfarbe für eine Klasse mithilfe von SetClassLong zu ändern, aber durch diese Änderung werden nicht alle Fenster, die zur Klasse gehören, sofort neu gezeichnet.

Beispiele

Ein Beispiel finden Sie unter Anzeigen eines Symbols.

Hinweis

Der winuser.h-Header definiert SetClassLong 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

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winuser.h (windows.h einschließen)
Bibliothek User32.lib
DLL User32.dll
APIs ext-ms-win-ntuser-windowclass-l1-1-2 (eingeführt in Windows 10, Version 10.0.10240)

Siehe auch

Konzept

GetClassLong

Referenz

RegisterClassEx

SetClassLongPtr

SetWindowLong

WNDCLASSEX

Fensterklassen

WindowProc