Condividi tramite


Funzione SetWindowSubclass (commctrl.h)

Installa o aggiorna un callback della sottoclasse di una finestra.

Sintassi

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

Parametri

[in] hWnd

Tipo: HWND

Handle della finestra sottoclassata.

[in] pfnSubclass

Tipo: SUBCLASSPROC

Puntatore a una routine della finestra. Questo puntatore e l'ID della sottoclasse identificano in modo univoco questo callback della sottoclasse. Per il prototipo della funzione di callback, vedere SUBCLASSPROC.

[in] uIdSubclass

Tipo: UINT_PTR

ID sottoclasse. Questo ID insieme alla routine della sottoclasse identifica in modo univoco una sottoclasse. Per rimuovere una sottoclasse, passare la routine della sottoclasse e questo valore alla funzione RemoveWindowSubclass . Questo valore viene passato alla routine della sottoclasse nel parametro uIdSubclass.

[in] dwRefData

Tipo: DWORD_PTR

DWORD_PTR ai dati di riferimento. Il significato di questo valore è determinato dall'applicazione chiamante. Questo valore viene passato alla routine della sottoclasse nel parametro dwRefData. Un dwRefData diverso è associato a ogni combinazione di handle di finestra, routine della sottoclasse e uIdSubclass.

Valore restituito

Tipo: BOOL

TRUE se il callback della sottoclasse è stato installato correttamente; in caso contrario, FALSE.

Commenti

I callback delle sottoclassi sono identificati dalla combinazione dell'indirizzo di callback e dell'ID sottoclasse definito dal chiamante. Se l'indirizzo di callback e la coppia ID non sono ancora stati installati, questa funzione installa la sottoclasse. Se la coppia è già stata installata, questa funzione aggiorna solo i dati di riferimento.

Ogni callback può archiviare una singola DWORD_PTR di dati di riferimento, che viene passata alla funzione di callback quando viene chiamata per filtrare i messaggi. Non viene eseguito alcun conteggio dei riferimenti per il callback; può chiamare ripetutamente SetWindowSubclass per modificare il valore dell'elemento dati di riferimento.

Avviso Non è possibile usare le funzioni helper della sottoclasse per sottoclassare una finestra tra thread.
 

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione commctrl.h
Libreria Comctl32.lib
DLL Comctl32.dll (versione 5.8 o successiva)
Set di API ext-ms-win-shell-comctl32-window-l1-1-0 (introdotto in Windows 10, versione 10.0.14393)

Vedi anche

DefSubclassProc

GetWindowSubclass

RemoveWindowSubclass