Condividi tramite


Contesti di dispositivo

Un contesto di dispositivo è una struttura di dati di Windows contenente informazioni sugli attributi di disegno di un dispositivo, ad esempio uno schermo o una stampante. Tutte le chiamate di disegno vengono effettuate tramite un oggetto contesto dispositivo, che incapsula le API di Windows per le linee di disegno, le forme e il testo. I contesti di dispositivo consentono il disegno indipendente dal dispositivo in Windows. I contesti di dispositivo possono essere usati per disegnare sullo schermo, sulla stampante o su un metafile.

Gli oggetti CPaintDC incapsulano il linguaggio comune di Windows, chiamando la BeginPaint funzione, quindi disegnando nel contesto del dispositivo, quindi chiamando la EndPaint funzione . Il CPaintDC costruttore chiama BeginPaint l'utente e il distruttore chiama EndPaint. Il processo semplificato consiste nel creare l'oggetto CDC , disegnare e quindi eliminare definitivamente l'oggetto CDC . Nel framework gran parte di questo processo è automatizzato. In particolare, la OnDraw funzione viene passata a un CPaintDC oggetto già preparato (tramite OnPrepareDC) ed è sufficiente disegnare in esso. Viene eliminato definitivamente dal framework e il contesto di dispositivo sottostante viene rilasciato a Windows al ritorno dalla chiamata alla OnDraw funzione.

Gli oggetti CClientDC incapsulano l'uso di un contesto di dispositivo che rappresenta solo l'area client di una finestra. Il CClientDC costruttore chiama la GetDC funzione e il distruttore chiama la ReleaseDC funzione . Gli oggetti CWindowDC incapsulano un contesto di dispositivo che rappresenta l'intera finestra, inclusa la cornice.

Gli oggetti CMetaFileDC incapsulano il disegno in un metafile di Windows. A differenza del CPaintDC passato a OnDraw, in questo caso è necessario chiamare personalmente OnPrepareDC .

Disegno del mouse

La maggior parte dei disegni in un programma framework, e quindi la maggior parte del lavoro del contesto di dispositivo, viene eseguita nella funzione membro della OnDraw visualizzazione. Tuttavia, è comunque possibile usare oggetti contesto dispositivo per altri scopi. Ad esempio, per fornire feedback di rilevamento per lo spostamento del mouse in una visualizzazione, è necessario disegnare direttamente nella visualizzazione senza attendere OnDraw che venga chiamato.

In questo caso, è possibile usare un oggetto contesto di dispositivo CClientDC per disegnare direttamente nella visualizzazione.

Cosa vuoi sapere di più su

Vedi anche

Oggetti finestra