Registrazione di una classe di finestra

Una classe finestra definisce gli attributi di una finestra, come la sua procedura di stile, icona, cursore, menu e finestra. Il primo passo di una classe di finestra di registrazione è di riempire in una struttura WNDCLASSEX con le informazioni sulla classe di finestra. Per ulteriori informazioni, vedere elementi di una classe di finestra. Successivamente, passare la struttura alla funzione RegisterClassEx . Per ulteriori informazioni, vedere Utilizzo di classi di finestre.

Per registrare una classe globale di applicazione, specificare lo stile CS_GLOBALCLASS nel membro stile della struttura WNDCLASSEX . Quando si registra una classe di applicazione locale, non specificare lo stile CS_GLOBALCLASS.

Se si registra la classe finestra utilizzando la versione ANSI di RegisterClassEx, RegisterClassExA, l'applicazione richiede che i parametri di sistema passo testo dei messaggi alle finestre della classe creata utilizzando il carattere ANSI impostata; Se si registra la classe utilizzando la versione Unicode del RegisterClassEx, RegisterClassExW, l'applicazione richiede che il sistema di passare parametri del testo dei messaggi alle finestre della classe creata utilizzando il set di caratteri Unicode. La funzione IsWindowUnicode consente alle applicazioni di eseguire una query la natura di ogni finestra. Per ulteriori informazioni sulle funzioni ANSI e Unicode nell'API Win32, vedere Prototipi di funzione Win32.

L'eseguibile o DLL che ha registrato la classe è il proprietario della classe. Il sistema determina le proprietà della classe dal membro hInstance della struttura WNDCLASSEX passato alla funzione RegisterClassEx quando la classe viene registrata. Per le dll, hInstance membro deve essere l'handle di istanza della DLL.

Windows 95: La classe viene eliminata quando il proprietario si chiude o viene scaricato. Per questo motivo, il processo deve distruggere tutte le finestre utilizzando la classe prima che il proprietario si chiude o viene scaricato.

Windows NT: La classe non viene distrutta quando la DLL che lo possiede viene scaricata. Pertanto, se il sistema chiama la routine della finestra per una finestra di tale classe, determinerà una violazione di accesso, perché la DLL contenente la routine della finestra non è più in memoria. Il processo deve distruggere tutte le finestre utilizzando la classe prima che la DLL venga scaricata e chiamare la funzione UnregisterClass.

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

Index