Funzione SetClassLongA (winuser.h)

Sostituisce il valore a 32 bit (long) specificato 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 entrambe 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 di classe aggiuntiva, meno quattro; Ad esempio, se sono stati specificati 12 o più byte di memoria di classe aggiuntiva, il valore 8 sarà un indice al terzo numero intero a 32 bit. Per impostare qualsiasi altro valore della struttura 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 della finestra aggiuntiva 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 al 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 per 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 sostitutivo.

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 informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

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

La chiamata a 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 WNDCLASSEX utilizzata 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 aggiorna immediatamente tutte le finestre appartenenti alla classe .

Esempio

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 che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
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)

Vedi anche

Informazioni concettuali

GetClassLong

Riferimento

RegisterClassEx

SetClassLongPtr

Setwindowlong

WNDCLASSEX

Classi finestra

WindowProc