Condividi tramite


Contesti di dispositivo di visualizzazione comuni

Un contesto di dispositivo comune viene usato per disegnare nell'area client della finestra. Il sistema fornisce un contesto di dispositivo comune per impostazione predefinita per qualsiasi finestra la cui classe finestra non specifica in modo esplicito uno stile di contesto del dispositivo di visualizzazione. I contesti di dispositivo comuni vengono in genere usati con finestre che possono essere disegnate senza modifiche estese agli attributi del contesto di dispositivo. I contesti di dispositivo comuni sono pratici perché non richiedono risorse di memoria o di sistema aggiuntive, ma possono risultare scomode se l'applicazione deve configurare molti attributi prima di usarli.

Il sistema recupera tutti i contesti di dispositivo comuni dalla cache del contesto di dispositivo di visualizzazione. Un'applicazione può recuperare un contesto di dispositivo comune subito dopo la creazione della finestra. Poiché il contesto di dispositivo comune proviene dalla cache, l'applicazione deve sempre rilasciare il contesto di dispositivo il prima possibile dopo il disegno. Dopo il rilascio del contesto di dispositivo comune, non è più valido e l'applicazione non deve tentare di disegnare con esso. Per disegnare di nuovo, l'applicazione deve recuperare un nuovo contesto di dispositivo comune e continuare a recuperare e rilasciare un contesto di dispositivo comune ogni volta che disegna nella finestra. Se l'applicazione recupera l'handle del contesto di dispositivo usando la funzione GetDC , deve usare la funzione ReleaseDC per rilasciare l'handle. Analogamente, per ogni funzione BeginPaint , l'applicazione deve usare una funzione EndPaint corrispondente.

Quando l'applicazione recupera il contesto di dispositivo, il sistema regola l'origine in modo che sia allineata all'angolo superiore sinistro dell'area client. Imposta anche l'area di ritaglio in modo che l'output nel contesto del dispositivo venga ritagliato nell'area client. Qualsiasi output altrimenti visualizzato all'esterno dell'area client viene ritagliato. Se l'applicazione recupera il contesto di dispositivo comune usando BeginPaint, il sistema include anche l'area di aggiornamento nell'area di ritaglio per limitare ulteriormente l'output.

Quando un'applicazione rilascia un contesto di dispositivo comune, il sistema ripristina i valori predefiniti per gli attributi del contesto di dispositivo. Un'applicazione che modifica i valori degli attributi deve farlo ogni volta che recupera un contesto di dispositivo comune. Il rilascio del contesto di dispositivo rilascia qualsiasi oggetto disegno selezionato dall'applicazione, pertanto l'applicazione non deve rilasciare questi oggetti prima di rilasciare il contesto di dispositivo. In tutti i casi, un'applicazione non deve mai presupporre che il contesto di dispositivo comune mantenga selezioni non predefinite dopo il rilascio.