Istanza Subclassing

Sottoclassi un'applicazione di un'istanza di una finestra utilizzando la funzione SetWindowLong . L'applicazione passa la bandiera GWL_WNDPROC, l'handle di finestra per sottoclasse e l'indirizzo della procedura sottoclasse SetWindowLong. La procedura di sottoclasse può risiedere in eseguibile dell'applicazione o in una libreria a collegamento dinamico (DLL).

SetWindowLong restituisce l'indirizzo di routine della finestra originale della finestra. L'applicazione deve salvare l'indirizzo, utilizzando nelle successive chiamate alla funzione CallWindowProc , per passare messaggi intercettati originale routine di finestra. L'applicazione deve anche avere l'indirizzo di routine di finestra originale per rimuovere la sottoclasse dalla finestra. Per rimuovere la sottoclasse, l'applicazione chiama SetWindowLong ancora una volta, passando l'indirizzo della procedura finestra originale con la bandiera GWL_WNDPROC e l'handle alla finestra.

Il sistema possiede il sistema globale alle classi, e gli aspetti dei controlli potrebbero cambiare da una versione del sistema per il prossimo. Se l'applicazione deve sottoclasse una finestra che appartiene a una classe di sistema globale, lo sviluppatore potrebbe essere necessario aggiornare l'applicazione quando viene rilasciata una nuova versione del sistema.

Perché sottoclassi istanza si verifica dopo che viene creata una finestra, è possibile aggiungere qualsiasi byte supplementare alla finestra. Applicazioni tale sottoclasse di una finestra deve utilizzare l'elenco delle proprietà della finestra per memorizzare tutti i dati necessari per un'istanza della finestra sottoclasse. Per ulteriori informazioni, vedere Finestra Proprietà.

Quando un sottoclassi di applicazione una finestra sottoclasse, necessario rimuovere le sottoclassi in ordine inverso, essi sono stati eseguiti. Se non si inverte l'ordine di rimozione, potrebbe verificarsi un errore irreversibile del sistema.

Rimedio: Inserire il CD-ROM CD di MSDN Library.

Index