Delen via


Apparaatcontexten

Een apparaatcontext is een Windows-gegevensstructuur met informatie over de tekenkenmerken van een apparaat, zoals een beeldscherm of een printer. Alle tekenaanroepen worden gedaan via een apparaatcontextobject, waarin de Windows-API's worden ingekapseld voor tekenlijnen, vormen en tekst. Apparaatcontexten staan apparaatonafhankelijke tekening toe in Windows. Apparaatcontexten kunnen worden gebruikt om te tekenen naar het scherm, naar de printer of naar een metabestand.

CPaintDC-objecten kapselen het algemene idioom van Windows in: de functie wordt aangeroepen, er wordt vervolgens getekend in de apparaatcontext, en daarna wordt de BeginPaint functie aangeroepen. De CPaintDC constructor roept BeginPaint u aan en de destructor roept EndPaint aan. Het vereenvoudigde proces is het maken van het CDC-object , het tekenen en vervolgens vernietigen van het CDC object. In het kader wordt veel van dit proces geautomatiseerd. In het bijzonder wordt uw OnDraw functie doorgegeven aan een CPaintDC reeds voorbereide functie (via OnPrepareDC) en trekt u er gewoon in. Het wordt vernietigd door het framework en de onderliggende apparaatcontext wordt vrijgegeven aan Windows bij terugkeer van de aanroep naar uw OnDraw functie.

CClientDC-objecten bevatten het werken met een apparaatcontext die alleen het clientgebied van een venster vertegenwoordigt. De CClientDC constructor roept de GetDC functie aan en de destructor roept de ReleaseDC functie aan. CWindowDC-objecten bevatten een apparaatcontext die het hele venster vertegenwoordigt, inclusief het frame.

CMetaFileDC-objecten kapselen tekening in een Windows-metabestand in. In tegenstelling tot CPaintDC die aan OnDraw is doorgegeven, moet u in dit geval zelf OnPrepareDC aanroepen.

Muistekening

Het meeste tekenen in een framework-programma — en dus het meeste werk in apparaatcontext — wordt uitgevoerd in de lidfunctie van de weergave OnDraw. U kunt echter nog steeds apparaatcontextobjecten gebruiken voor andere doeleinden. Als u bijvoorbeeld feedback wilt geven over de tracering van muisbewegingen in een weergave, moet u rechtstreeks in de weergave tekenen zonder te wachten totdat OnDraw wordt aangeroepen.

In dat geval kunt u een CClientDC-apparaatcontextobject gebruiken om rechtstreeks in de weergave te tekenen.

Wat wilt u meer weten over

Zie ook

Vensterobjecten