La struttura WNDCLASS contiene gli attributi di classe della finestra che sono registrati dalla funzione RegisterClass.
Questa struttura è stata sostituita dalla struttura WNDCLASSEX utilizzata con la funzione RegisterClassEx . È comunque possibile utilizzare WNDCLASS e RegisterClass se non è necessario impostare la piccola icona associata alla classe della finestra.
typedef struct _WNDCLASS {UINT style;
Metodo WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
GESTIRE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
} WNDCLASS
Valore | Azione |
---|---|
CS_BYTEALIGNCLIENT | Allinea area client della finestra sul limite di byte (nella direzione x). Questo stile colpisce la larghezza della finestra e la posizione orizzontale sul display. |
CS_BYTEALIGNWINDOW | Allinea una finestra su un limite di byte (nella direzione x). Questo stile colpisce la larghezza della finestra e la posizione orizzontale sul display. |
CS_CLASSDC | Alloca un contesto di periferica per essere condivisi da tutte le finestre nella classe. Poiché le classi di finestre sono processo specifico, è possibile che più thread di un'applicazione per creare una finestra della stessa classe. È anche possibile che i thread di cercare di utilizzare simultaneamente il contesto di periferica. Quando questo accade, il sistema consente un solo thread alla fine con successo l'operazione di disegno. Per ulteriori informazioni, vedere Contesti di periferica. |
CS_DBLCLKS | Fare doppio clic manda su messaggi di routine di finestra quando l'utente fa doppio clic del mouse mentre il cursore è all'interno di una finestra appartenente alla classe. |
CS_GLOBALCLASS | Consente a un'applicazione creare una finestra della classe indipendentemente dal valore del parametro hInstance passato alla funzione CreateWindowEx o CreateWindow . Se non si specifica di questo stile, il hInstance parametro passato alla funzione CreateWindow (o CreateWindowEx) deve essere lo stesso come hInstance parametro passato alla funzione RegisterClass. |
È possibile creare una classe globale creando la classe finestra in una libreria a collegamento dinamico (DLL) e il nome della DLL le seguenti chiavi del Registro di sistema: | |
HKEY_LOCAL_MACHINE\Software \Microsoft\Windows NT\ CurrentVersion\Windows\AppInit_DLLs |
|
Ogni volta che si avvia un processo, il sistema carica le dll specificate nel contesto del processo appena avviato prima di chiamare la funzione di punto di ingresso in quel processo. La DLL deve registrare la classe durante la sua procedura di inizializzazione e deve specificare lo stile CS_GLOBALCLASS. | |
CS_HREDRAW | Ridisegna l'intera finestra se un movimento o adeguamento di dimensione viene modificata la larghezza dell'area client. |
CS_NOCLOSE | Disabilita Chiudi dal menu finestra. |
CS_OWNDC | Alloca un contesto di periferica univoci per ogni finestra nella classe. |
CS_PARENTDC | Imposta l'area di visualizzazione della finestra secondaria a quella della finestra padre in modo che il bambino può disegnare sull'oggetto padre. Una finestra con il bit di stile CS_PARENTDC riceve un contesto di periferica regolari dalla cache del sistema di contesti di periferica. Non dà il bambino del genitore contesto di periferica o impostazioni del contesto di periferica. Specificando CS_PARENTDC migliora le prestazioni di un'applicazione. Per ulteriori informazioni, vedere Contesti di periferica. |
CS_SAVEBITS | Salva come bitmap, la porzione dell'immagine dello schermo oscurato da una finestra. Il sistema utilizza la bitmap salvata per ricreare l'immagine sullo schermo quando la finestra viene rimosso. Il sistema visualizza la bitmap nella posizione originale e non invia messaggi WM_PAINT alle finestre oscurate dalla finestra, se la memoria utilizzata dal bitmap non è stata scartata e altre azioni di schermo non hanno invalidato l'immagine memorizzata. Questo stile è utile per piccole finestre (ad esempio, menu e finestre di dialogo) che vengono visualizzati brevemente e poi rimosso prima altre attività dello schermo avviene. Questo stile aumenta il tempo necessario per visualizzare la finestra, perché il sistema in primo luogo necessario allocare la memoria per archiviare la bitmap. |
CS_VREDRAW | Ridisegna l'intera finestra se un movimento o adeguamento di dimensione viene modificata l'altezza dell'area client. |
COLOR_ACTIVEBORDER
COLOR_ACTIVECAPTION
COLOR_APPWORKSPACE
COLOR_BACKGROUND
COLOR_BTNFACE
COLOR_BTNSHADOW
COLOR_BTNTEXT
COLOR_CAPTIONTEXT
COLOR_GRAYTEXT
COLOR_HIGHLIGHT
COLOR_HIGHLIGHTTEXT
COLOR_INACTIVEBORDER
COLOR_INACTIVECAPTION
COLOR_MENU
COLOR_MENUTEXT
COLOR_SCROLLBAR
COLOR_WINDOW
COLOR_WINDOWFRAME
COLOR_WINDOWTEXT
Il sistema elimina automaticamente pennelli sfondo classe quando la classe viene liberata. Un'applicazione non dovrebbe eliminare questi pennelli, perché una classe possa essere utilizzata da più istanze di un'applicazione.
Quando questo membro è NULL, un'applicazione deve disegnare il proprio sfondo ogni volta che viene richiesto per dipingere in area client. Per determinare se deve essere dipinto sullo sfondo, un'applicazione può elaborare il messaggio WM_ERASEBKGND o testare il membro fErase i PAINTSTRUCT struttura riempito dalla funzione BeginPaint.
Se lpszClassName è una stringa, specifica il nome della classe della finestra.
nbsp; Windows &NT: richiede 3.1 o versione successiva.
Windows:Richiede Windows 95 o versioni successive.
Windows CE:Richiede la versione 1.0 o successiva.
Intestazione:Dichiarati in winuser.
Unicode:Definito come strutture di Unicode e ANSI.
Window Classes Overview, Window Class Structures, BeginPaint, CreateWindow, CreateWindowEx, GetDC, GlobalAddAtom, MAKEINTRESOURCE, PAINTSTRUCT, RegisterClass, WNDCLASSEX, WindowProc, WM_PAINT
Rimedio: Inserire il CD-ROM CD di MSDN Library.