Registrazione di classi di finestre
Le classi di finestra nella programmazione tradizionale per Windows definiscono le caratteristiche di una "classe" (non una classe C++) da cui è possibile creare un numero indeterminato di finestre. Questo tipo di classe è un template o un modello per la creazione di finestre.
Registrazione delle classi di finestra nei programmi tradizionali per Windows
In un programma tradizionale per Windows, senza MFC, si elaborano tutti i messaggi in una finestra nella relativa "routine finestra" o "WndProc
". Un WndProc
oggetto è associato a una finestra tramite un processo di "registrazione della classe finestra". La finestra principale è registrata nella funzione WinMain
, ma altre classi di finestre possono essere registrate in qualsiasi punto dell'applicazione. La registrazione dipende da una struttura che contiene un puntatore alla funzione insieme alle WndProc
specifiche per il cursore, il pennello di sfondo e così via. La struttura viene passata come parametro, insieme al nome stringa della classe, in una chiamata precedente alla RegisterClass
funzione. Pertanto, una classe di registrazione può essere condivisa da più finestre.
Registrazione della classe della finestra nei programmi MFC
In un programma con framework MFC, la maggior parte delle operazioni di registrazione della classe di finestra viene eseguita automaticamente. Se si utilizza MFC, solitamente la classe di finestra C++ viene derivata da una classe di libreria esistente utilizzando la normale sintassi di C++ per l'ereditarietà di classe. Nel framework sono utilizzate ancora le tradizionali "classi di registrazione" e sono fornite diverse classi standard che vengono registrate automaticamente all'occorrenza. È possibile registrare classi di registrazione aggiuntive chiamando la funzione globale AfxRegisterWndClass e quindi passando la classe registrata alla Create
funzione membro di CWnd
. Come descritto in questo argomento, la tradizionale "classe di registrazione" di Windows non deve essere confusa con una classe C++.
Per altre informazioni, vedere La nota tecnica 1.