SetClassLongPtrA-Funktion (winuser.h)
Ersetzt den angegebenen Wert am angegebenen Offset im zusätzlichen Klassenspeicher oder die WNDCLASSEX- Struktur für die Klasse, zu der das angegebene Fenster gehört.
Syntax
ULONG_PTR SetClassLongPtrA(
[in] HWND hWnd,
[in] int nIndex,
[in] LONG_PTR 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 Wert im zusätzlichen Klassenspeicher festzulegen, geben Sie den positiven, nullbasierten Byte-Offset des festzulegenden Werts an. Gültige Werte liegen im Bereich 0 bis zur Anzahl der Bytes des zusätzlichen Klassenspeichers minus acht; Wenn Sie beispielsweise 24 oder mehr Bytes zusätzlichen Klassenspeicher angegeben haben, wäre ein Wert von 16 ein Index für die dritte ganze Zahl. Wenn Sie einen anderen Wert als die WNDCLASSEX- Struktur festlegen möchten, geben Sie einen der folgenden Werte an.
Wert | Bedeutung |
---|---|
|
Legt die Größe des zusätzlichen Arbeitsspeichers in Bytes fest, der der Klasse zugeordnet ist. Durch Festlegen dieses Werts wird die Anzahl der bereits zugewiesenen zusätzlichen Bytes nicht geändert. |
|
Legt die Größe des zusätzlichen Fensterspeichers in Bytes fest, der jedem Fenster in der Klasse zugeordnet ist. Durch Festlegen dieses Werts wird die Anzahl der bereits zugewiesenen zusätzlichen Bytes nicht geändert. Informationen zum Zugreifen auf diesen Speicher finden Sie unter SetWindowLongPtr. |
|
Ersetzt ein Handle an den Hintergrundpinsel, der der Klasse zugeordnet ist. |
|
Ersetzt ein Handle an den Cursor, der der Klasse zugeordnet ist. |
|
Ersetzt ein Handle mit dem Symbol, das der Klasse zugeordnet ist. |
|
Ruft ein Handle zum kleinen Symbol ab, das der Klasse zugeordnet ist. |
|
Ersetzt ein Handle für das Modul, das die Klasse registriert hat. |
|
Ersetzt den Mauszeiger auf die Menünamenzeichenfolge. Die Zeichenfolge identifiziert die Menüressource, die der Klasse zugeordnet ist. |
|
Ersetzt die Bits im Fensterklassenstil. |
|
Ersetzt den Zeiger auf die Fensterprozedur, die der Klasse zugeordnet ist. |
[in] dwNewLong
Typ: LONG_PTR
Der Ersetzungswert.
Rückgabewert
Typ: ULONG_PTR
Wenn die Funktion erfolgreich ist, ist der Rückgabewert der vorherige Wert des angegebenen Offsets. Wenn dies zuvor nicht festgelegt wurde, ist der Rückgabewert null.
Wenn die Funktion fehlschlägt, ist der Rückgabewert null. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.
Bemerkungen
Wenn Sie die SetClassLongPtr--Funktion und den GCLP_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 SetClassLongPtr- mit dem GCLP_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 jedoch keine Fensterklasse unterklassen, 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 SetClassLongPtr--Funktion mit Sorgfalt. Beispielsweise ist es möglich, die Hintergrundfarbe für eine Klasse mithilfe von SetClassLongPtr-zu ändern, diese Änderung fügt jedoch nicht sofort alle Fenster zurück, die zur Klasse gehören.
Anmerkung
Der winuser.h-Header definiert SetClassLongPtr 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 |
---|---|
mindestens unterstützte Client- | Windows 2000 Professional [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | winuser.h (enthalten Windows.h) |
Library | User32.lib |
DLL- | User32.dll |
API-Satz | ext-ms-win-ntuser-windowclass-l1-1-2 (eingeführt in Windows 10, Version 10.0.10240) |
Siehe auch
Konzeptionelle
Referenz-