Freigeben über


SetWindowSubclass-Funktion (commctrl.h)

Installiert oder aktualisiert einen Fensterunterklassenrückruf.

Syntax

BOOL SetWindowSubclass(
  [in] HWND         hWnd,
  [in] SUBCLASSPROC pfnSubclass,
  [in] UINT_PTR     uIdSubclass,
  [in] DWORD_PTR    dwRefData
);

Parameter

[in] hWnd

Typ: HWND

Das Handle des Fensters, das unterklassiert wird.

[in] pfnSubclass

Typ: SUBCLASSPROC

Ein Zeiger auf eine Fensterprozedur. Dieser Zeiger und die Unterklassen-ID identifizieren diesen Unterklassenrückruf eindeutig. Den Rückruffunktionsprototyp finden Sie unter SUBCLASSPROC.

[in] uIdSubclass

Typ: UINT_PTR

Die Unterklassen-ID. Diese ID zusammen mit der Unterklassenprozedur identifiziert eindeutig eine Unterklasse. Um eine Unterklasse zu entfernen, übergeben Sie die Unterklassenprozedur und diesen Wert an die RemoveWindowSubclass-Funktion . Dieser Wert wird an die Unterklassenprozedur im uIdSubclass-Parameter übergeben.

[in] dwRefData

Typ: DWORD_PTR

DWORD_PTR , um auf Daten zu verweisen. Die Bedeutung dieses Werts wird von der aufrufenden Anwendung bestimmt. Dieser Wert wird an die Unterklassenprozedur im dwRefData-Parameter übergeben. Jeder Kombination aus Fensterhandle, Unterklassenprozedur und uIdSubclass ist eine andere dwRefData zugeordnet.

Rückgabewert

Typ: BOOL

TRUE , wenn der Rückruf der Unterklasse erfolgreich installiert wurde; andernfalls FALSE.

Hinweise

Rückrufe von Unterklassen werden durch die Kombination der Rückrufadresse und der vom Aufrufer definierten Unterklassen-ID identifiziert. Wenn die Rückrufadresse und das ID-Paar noch nicht installiert wurden, installiert diese Funktion die Unterklasse. Wenn das Paar bereits installiert wurde, aktualisiert diese Funktion nur die Referenzdaten.

Jeder Rückruf kann eine einzelne DWORD_PTR von Verweisdaten speichern, die an die Rückruffunktion übergeben wird, wenn sie aufgerufen wird, um Nachrichten zu filtern. Für den Rückruf wird keine Verweiszählung ausgeführt. Es kann wiederholt SetWindowSubclass aufrufen, um den Wert seines Verweisdatenelements zu ändern.

Warnung Sie können die Hilfsfunktionen für Unterklassen nicht verwenden, um ein Fenster über Threads hinweg unterzuklassigen.
 

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile commctrl.h
Bibliothek Comctl32.lib
DLL Comctl32.dll (Version 5.8 oder höher)
APIs ext-ms-win-shell-comctl32-window-l1-1-0 (eingeführt in Windows 10, Version 10.0.14393)

Weitere Informationen

DefSubclassProc

GetWindowSubclass

RemoveWindowSubclass