Condividi tramite


Funzione SetClassLongA (winuser.h)

Sostituisce il valore specificato a 32 bit (long) in corrispondenza dell'offset specificato nella memoria della classe aggiuntiva o nella struttura WNDCLASSEX per la classe a cui appartiene la finestra specificata.

Nota Questa funzione è stata sostituita dalla funzione SetClassLongPtr . Per scrivere codice compatibile con le versioni a 32 bit e a 64 bit di Windows, usare SetClassLongPtr.
 

Sintassi

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

Parametri

[in] hWnd

Tipo: HWND

Handle per la finestra e, indirettamente, la classe a cui appartiene la finestra.

[in] nIndex

Tipo: int

Valore da sostituire. Per impostare un valore a 32 bit nella memoria della classe aggiuntiva, specificare l'offset di byte positivo in base zero del valore da impostare. I valori validi sono compresi nell'intervallo zero fino al numero di byte di memoria della classe aggiuntiva, meno quattro; Ad esempio, se sono stati specificati 12 o più byte di memoria di classe aggiuntiva, un valore pari a 8 è un indice del terzo numero intero a 32 bit. Per impostare qualsiasi altro valore della struttura di WNDCLASSEX , specificare uno dei valori seguenti.

Valore Significato
GCL_CBCLSEXTRA
-20
Imposta le dimensioni, in byte, della memoria aggiuntiva associata alla classe . L'impostazione di questo valore non modifica il numero di byte aggiuntivi già allocati.
GCL_CBWNDEXTRA
-18
Imposta le dimensioni, in byte, della memoria aggiuntiva della finestra associata a ogni finestra della classe . L'impostazione di questo valore non modifica il numero di byte aggiuntivi già allocati. Per informazioni su come accedere a questa memoria, vedere SetWindowLong.
GCL_HBRBACKGROUND
-10
Sostituisce un handle con il pennello di sfondo associato alla classe .
GCL_HCURSOR
-12
Sostituisce un handle al cursore associato alla classe .
GCL_HICON
-14
Sostituisce un handle all'icona associata alla classe .
GCL_HICONSM
-34
Sostituire un handle con l'icona piccola associata alla classe .
GCL_HMODULE
-16
Sostituisce un handle al modulo che ha registrato la classe .
GCL_MENUNAME
-8
Sostituisce l'indirizzo della stringa del nome del menu. La stringa identifica la risorsa di menu associata alla classe .
GCL_STYLE
-26
Sostituisce i bit di stile della classe finestra.
GCL_WNDPROC
-24
Sostituisce l'indirizzo della routine finestra associata alla classe .

[in] dwNewLong

Tipo: LONG

Valore di sostituzione.

Valore restituito

Tipo: DWORD

Se la funzione ha esito positivo, il valore restituito è il valore precedente dell'intero a 32 bit specificato. Se il valore non è stato impostato in precedenza, il valore restituito è zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per ottenere informazioni estese sull'errore, chiamare GetLastError.

Osservazioni

Se si utilizza la funzione setClassLong e l'indice GCL_WNDPROC per sostituire la routine finestra, la routine della finestra deve essere conforme alle linee guida specificate nella descrizione della funzione di callback WindowProc.

La chiamata SetClassLong con l'indice GCL_WNDPROC crea una sottoclasse della classe finestra che influisce su tutte le finestre create successivamente con la classe . Un'applicazione può sottoclasse una classe di sistema, ma non deve sottoclasse una classe finestra creata da un altro processo.

Riservare memoria di classe aggiuntiva specificando un valore diverso da zero nel membro cbClsExtra della struttura di WNDCLASSEX usata con la funzione RegisterClassEx .

Usare la funzione SetClassLong con attenzione. Ad esempio, è possibile modificare il colore di sfondo per una classe usando SetClassLong, ma questa modifica non esegue immediatamente l'aggiornamento di tutte le finestre appartenenti alla classe .

Esempi

Per un esempio, vedere Visualizzazione di un'icona.

Nota

L'intestazione winuser.h definisce SetClassLong come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000 Professional [solo app desktop]
server minimo supportato Windows 2000 Server [solo app desktop]
piattaforma di destinazione Finestre
intestazione winuser.h (include Windows.h)
libreria User32.lib
dll User32.dll
set di API ext-ms-win-ntuser-windowclass-l1-1-2 (introdotto in Windows 10, versione 10.0.10240)

Vedere anche

concettuale

GetClassLong

riferimento

RegisterClassEx

SetClassLongPtr

SetWindowLong

WNDCLASSEX

classi finestra

WindowProc