Dela via


CDC-klass

Definierar en klass med objekt med enhetskontext.

Syntax

class CDC : public CObject

Members

Public Constructors

Name Description
CDC::CDC Konstruerar ett CDC objekt.

Public Methods

Name Description
CDC::AbortDoc Avslutar det aktuella utskriftsjobbet och raderar allt som programmet har skrivit till enheten sedan medlemsfunktionens StartDoc senaste anrop.
CDC::AbortPath Stänger och tar bort alla sökvägar i enhetskontexten.
CDC::AddMetaFileComment Kopierar kommentaren från en buffert till en angiven metafil i utökat format.
CDC::AlphaBlend Visar bitmappar som har transparenta eller halvtransparentera bildpunkter.
CDC::AngleArc Ritar ett linjesegment och en båge och flyttar den aktuella positionen till bågens slutpunkt.
CDC::Arc Ritar en elliptisk båge.
CDC::ArcTo Ritar en elliptisk båge. Den här funktionen liknar Arc, förutom att den aktuella positionen uppdateras.
CDC::Attach Kopplar en Windows-enhetskontext till det här CDC objektet.
CDC::BeginPath Öppnar en sökvägsparentes i enhetskontexten.
CDC::BitBlt Kopierar en bitmapp från en angiven enhetskontext.
CDC::Chord Ritar ett ackord (en sluten figur som avgränsas av skärningspunkten mellan en ellips och ett linjesegment).
CDC::CloseFigure Stänger en öppen bild i en sökväg.
CDC::CreateCompatibleDC Skapar en kontext för minnesenheter som är kompatibel med en annan enhetskontext. Du kan använda den för att förbereda bilder i minnet.
CDC::CreateDC Skapar en enhetskontext för en specifik enhet.
CDC::CreateIC Skapar en informationskontext för en specifik enhet. Detta ger ett snabbt sätt att få information om enheten utan att skapa en enhetskontext.
CDC::DeleteDC Tar bort windows-enhetskontexten som är associerad med det här CDC objektet.
CDC::DeleteTempMap Anropas av CWinApp hanteraren för inaktivitetstid för att ta bort alla temporära CDC objekt som skapats av FromHandle. Kopplar också från enhetskontexten.
CDC::Detach Kopplar från Windows-enhetskontexten från det här CDC objektet.
CDC::DPtoHIMETRIC Konverterar enhetsenheter till HIMETRIC enheter.
CDC::DPtoLP Konverterar enhetsenheter till logiska enheter.
CDC::Draw3dRect Ritar en tredimensionell rektangel.
CDC::DrawDragRect Raderar och ritar om en rektangel när den dras.
CDC::DrawEdge Ritar kanterna på en rektangel.
CDC::DrawEscape Åtkomst till ritningsfunktioner i en videovisning som inte är direkt tillgänglig via grafikenhetsgränssnittet (GDI).
CDC::DrawFocusRect Ritar en rektangel i det format som används för att ange fokus.
CDC::DrawFrameControl Rita en ramkontroll.
CDC::DrawIcon Ritar en ikon.
CDC::DrawState Visar en bild och tillämpar en visuell effekt för att indikera ett tillstånd.
CDC::DrawText Ritar formaterad text i den angivna rektangeln.
CDC::DrawTextEx Ritar formaterad text i den angivna rektangeln med andra format.
CDC::Ellipse Ritar en ellips.
CDC::EndDoc Avslutar ett utskriftsjobb som startats av StartDoc medlemsfunktionen.
CDC::EndPage Informerar enhetsdrivrutinen om att en sida slutar.
CDC::EndPath Stänger en sökvägsparentes och väljer den sökväg som definieras av hakparentesen i enhetskontexten.
CDC::EnumObjects Räknar upp pennor och penslar som är tillgängliga i en enhetskontext.
CDC::Escape Tillåter att program får åtkomst till faciliteter som inte är direkt tillgängliga från en viss enhet via GDI. Ger också åtkomst till Windows escape-funktioner. Escape-anrop som görs av ett program översätts och skickas till enhetsdrivrutinen.
CDC::ExcludeClipRect Skapar en ny urklippsregion som består av den befintliga urklippsregionen minus den angivna rektangeln.
CDC::ExcludeUpdateRgn Förhindrar ritning inom ogiltiga områden i ett fönster genom att undanta en uppdaterad region i fönstret från en urklippsregion.
CDC::ExtFloodFill Fyller ett område med den aktuella penseln. Ger mer flexibilitet än CDC::FloodFill medlemsfunktionen.
CDC::ExtTextOut Skriver en teckensträng i en rektangulär region med det markerade teckensnittet.
CDC::FillPath Stänger alla öppna figurer i den aktuella sökvägen och fyller sökvägens inre med hjälp av det aktuella pensel- och polygonfyllningsläget.
CDC::FillRect Fyller en viss rektangel med hjälp av en specifik pensel.
CDC::FillRgn Fyller en viss region med den angivna penseln.
CDC::FillSolidRect Fyller en rektangel med en solid färg.
CDC::FlattenPath Omvandlar alla kurvor i sökvägen som valts till den aktuella enhetskontexten och omvandlar varje kurva till en sekvens med linjer.
CDC::FloodFill Fyller ett område med den aktuella penseln.
CDC::FrameRect Ritar en kantlinje runt en rektangel.
CDC::FrameRgn Ritar en kantlinje runt en viss region med hjälp av en pensel.
CDC::FromHandle Returnerar en pekare till ett CDC objekt när ett handtag ges till en enhetskontext. Om ett CDC objekt inte är kopplat till handtaget skapas och kopplas ett tillfälligt CDC objekt.
CDC::GetArcDirection Returnerar den aktuella arc-riktningen för enhetskontexten.
CDC::GetAspectRatioFilter Hämtar inställningen för det aktuella filtret för proportioner.
CDC::GetBkColor Hämtar den aktuella bakgrundsfärgen.
CDC::GetBkMode Hämtar bakgrundsläget.
CDC::GetBoundsRect Returnerar den aktuella ackumulerade avgränsningsrektangeln för den angivna enhetskontexten.
CDC::GetBrushOrg Hämtar ursprunget för den aktuella penseln.
CDC::GetCharABCWidths Hämtar bredden, i logiska enheter, på efterföljande tecken i ett angivet intervall från det aktuella teckensnittet.
CDC::GetCharABCWidthsI Hämtar bredden i logiska enheter för på varandra följande glyfindex i ett angivet intervall från det aktuella TrueType-teckensnittet.
CDC::GetCharacterPlacement Hämtar olika typer av information på en teckensträng.
CDC::GetCharWidth Hämtar bråkbredderna för efterföljande tecken i ett visst intervall från det aktuella teckensnittet.
CDC::GetCharWidthI Hämtar bredden i logiska koordinater för på varandra följande glyphindex i ett angivet intervall från det aktuella teckensnittet.
CDC::GetClipBox Hämtar dimensionerna för den snävaste avgränsningsrektangeln runt den aktuella urklippsgränsen.
CDC::GetColorAdjustment Hämtar färgjusteringsvärdena för enhetskontexten.
CDC::GetCurrentBitmap Returnerar en pekare till det markerade CBitmap objektet.
CDC::GetCurrentBrush Returnerar en pekare till det markerade CBrush objektet.
CDC::GetCurrentFont Returnerar en pekare till det markerade CFont objektet.
CDC::GetCurrentPalette Returnerar en pekare till det markerade CPalette objektet.
CDC::GetCurrentPen Returnerar en pekare till det markerade CPen objektet.
CDC::GetCurrentPosition Hämtar den aktuella positionen för pennan (i logiska koordinater).
CDC::GetDCBrushColor Hämtar den aktuella penselfärgen.
CDC::GetDCPenColor Hämtar den aktuella pennfärgen.
CDC::GetDeviceCaps Hämtar en angiven typ av enhetsspecifik information om en viss visningsenhets funktioner.
CDC::GetFontData Hämtar teckenmåttinformation från en skalbar teckensnittsfil. Informationen som ska hämtas identifieras genom att ange en förskjutning i teckensnittsfilen och längden på den information som ska returneras.
CDC::GetFontLanguageInfo Returnerar information om det markerade teckensnittet för den angivna visningskontexten.
CDC::GetGlyphOutline Hämtar dispositionskurvan eller bitmappen för ett dispositionstecken i det aktuella teckensnittet.
CDC::GetGraphicsMode Hämtar det aktuella grafikläget för den angivna enhetskontexten.
CDC::GetHalftoneBrush Hämtar en halvtonsborste.
CDC::GetKerningPairs Hämtar tecken kerning par för teckensnittet som för närvarande är valt i den angivna enhetskontexten.
CDC::GetLayout Hämtar layouten för en enhetskontext (DC). Layouten kan vara antingen från vänster till höger (standard) eller höger till vänster (speglad).
CDC::GetMapMode Hämtar det aktuella mappningsläget.
CDC::GetMiterLimit Returnerar mitergränsen för enhetskontexten.
CDC::GetNearestColor Hämtar den närmaste logiska färgen till en angiven logisk färg som den angivna enheten kan representera.
CDC::GetOutlineTextMetrics Hämtar teckenmåttinformation för TrueType-teckensnitt.
CDC::GetOutputCharWidth Hämtar bredden på enskilda tecken i en på varandra följande grupp med tecken från det aktuella teckensnittet med hjälp av utdataenhetskontexten.
CDC::GetOutputTabbedTextExtent Beräknar bredden och höjden på en teckensträng i utdataenhetskontexten.
CDC::GetOutputTextExtent Beräknar bredden och höjden på en textrad i enhetskontexten för utdata med det aktuella teckensnittet för att fastställa dimensionerna.
CDC::GetOutputTextMetrics Hämtar måtten för det aktuella teckensnittet från enhetskontexten för utdata.
CDC::GetPath Hämtar koordinaterna som definierar slutpunkterna för linjer och kontrollpunkterna för kurvor som finns i sökvägen som har valts i enhetskontexten.
CDC::GetPixel Hämtar RGB-färgvärdet för pixeln vid den angivna punkten.
CDC::GetPolyFillMode Hämtar det aktuella polygonfyllningsläget.
CDC::GetROP2 Hämtar det aktuella ritningsläget.
CDC::GetSafeHdc Returnerar CDC::m_hDC, utdataenhetskontexten.
CDC::GetStretchBltMode Hämtar det aktuella bitmapps-stretching-läget.
CDC::GetTabbedTextExtent Beräknar bredden och höjden på en teckensträng i attributenhetskontexten.
CDC::GetTextAlign Hämtar textjusteringsflaggor.
CDC::GetTextCharacterExtra Hämtar den aktuella inställningen för mängden intercharacter-avstånd.
CDC::GetTextColor Hämtar den aktuella textfärgen.
CDC::GetTextExtent Beräknar bredden och höjden på en textrad i attributenhetskontexten med det aktuella teckensnittet för att fastställa dimensionerna.
CDC::GetTextExtentExPointI Hämtar antalet tecken i en angiven sträng som får plats inom ett angivet utrymme och fyller en matris med textutrymmet för vart och ett av dessa tecken.
CDC::GetTextExtentPointI Hämtar bredden och höjden på den angivna matrisen med glyfindex.
CDC::GetTextFace Kopierar typsnittsnamnet för det aktuella teckensnittet till en buffert som en null-avslutad sträng.
CDC::GetTextMetrics Hämtar måtten för det aktuella teckensnittet från attributenhetskontexten.
CDC::GetViewportExt Hämtar x- och y-omfattningen för visningsporten.
CDC::GetViewportOrg Hämtar x- och y-koordinaterna för visningsportens ursprung.
CDC::GetWindow Returnerar fönstret som är associerat med visningsenhetens kontext.
CDC::GetWindowExt Hämtar x- och y-omfattningen för det associerade fönstret.
CDC::GetWindowOrg Hämtar x- och y-koordinaterna för det associerade fönstrets ursprung.
CDC::GetWorldTransform Hämtar den aktuella omvandlingen mellan värld och rymd till sidutrymme.
CDC::GradientFill Fyller rektangel- och triangelstrukturer med en graderingsfärg.
CDC::GrayString Ritar nedtonad (nedtonad) text på den angivna platsen.
CDC::HIMETRICtoDP Konverterar HIMETRIC-enheter till enhetsenheter.
CDC::HIMETRICtoLP Konverterar HIMETRIC-enheter till logiska enheter.
CDC::IntersectClipRect Skapar en ny urklippsregion genom att bilda skärningspunkten för den aktuella regionen och en rektangel.
CDC::InvertRect Invertera innehållet i en rektangel.
CDC::InvertRgn Invertera färgerna i en region.
CDC::IsPrinting Avgör om enhetskontexten används för utskrift.
CDC::LineTo Ritar en linje från den aktuella positionen upp till, men inte en punkt.
CDC::LPtoDP Konverterar logiska enheter till enhetsenheter.
CDC::LPtoHIMETRIC Konverterar logiska enheter till HIMETRIC-enheter.
CDC::MaskBlt Kombinerar färgdata för käll- och målbitmapparna med hjälp av den angivna mask- och rasteråtgärden.
CDC::ModifyWorldTransform Ändrar världsomvandlingen för en enhetskontext med det angivna läget.
CDC::MoveTo Flyttar den aktuella positionen.
CDC::OffsetClipRgn Flyttar urklippsregionen för den angivna enheten.
CDC::OffsetViewportOrg Ändrar visningsportens ursprung i förhållande till koordinaterna för det aktuella visningsports ursprunget.
CDC::OffsetWindowOrg Ändrar fönstrets ursprung i förhållande till koordinaterna för det aktuella fönstrets ursprung.
CDC::PaintRgn Fyller en region med den valda penseln.
CDC::PatBlt Skapar ett bitmönster.
CDC::Pie Ritar en cirkelformad kil.
CDC::PlayMetaFile Spelar upp innehållet i den angivna metafilen på den angivna enheten. Den förbättrade versionen av PlayMetaFile visar bilden som lagras i det angivna metafilen med förbättrat format. Metafilen kan spelas upp valfritt antal gånger.
CDC::PlgBlt Utför en bitblocksöverföring av bitar av färgdata från den angivna rektangeln i källenhetskontexten till det angivna parallellogrammet i den angivna enhetskontexten.
CDC::PolyBezier Ritar en eller flera Bzier-splines. Den aktuella positionen används inte eller uppdateras.
CDC::PolyBezierTo Ritar en eller flera Bzier-splines och flyttar den aktuella positionen till slutpunkten för den sista Bzier-spline.
CDC::PolyDraw Ritar en uppsättning linjesegment och Bzier-splines. Den här funktionen uppdaterar den aktuella positionen.
CDC::Polygon Ritar en polygon som består av två eller flera punkter (hörn) som är sammankopplade med linjer.
CDC::Polyline Ritar en uppsättning linjesegment som ansluter de angivna punkterna.
CDC::PolylineTo Ritar en eller flera raka linjer och flyttar den aktuella positionen till slutpunkten för den sista raden.
CDC::PolyPolygon Skapar två eller flera polygoner som fylls med det aktuella polygonfyllningsläget. Polygonerna kan vara åtskilda eller överlappa varandra.
CDC::PolyPolyline Ritar flera serier med anslutna linjesegment. Den aktuella positionen används inte eller uppdateras inte av den här funktionen.
CDC::PtVisible Anger om den angivna punkten ligger inom urklippsregionen.
CDC::RealizePalette Mappar palettposter i den aktuella logiska paletten till systempaletten.
CDC::Rectangle Ritar en rektangel med den aktuella pennan och fyller den med den aktuella penseln.
CDC::RectVisible Avgör om någon del av den angivna rektangeln ligger inom urklippsregionen.
CDC::ReleaseAttribDC Versioner m_hAttribDC, attributenhetskontexten.
CDC::ReleaseOutputDC Versioner m_hDC, utdataenhetskontexten.
CDC::ResetDC Uppdaterar enhetskontexten m_hAttribDC .
CDC::RestoreDC Återställer enhetskontexten till ett tidigare tillstånd som sparats med SaveDC.
CDC::RoundRect Ritar en rektangel med rundade hörn med den aktuella pennan och fylld med den aktuella penseln.
CDC::SaveDC Sparar det aktuella tillståndet för enhetskontexten.
CDC::ScaleViewportExt Ändrar visningsportens omfattning i förhållande till de aktuella värdena.
CDC::ScaleWindowExt Ändrar fönstrets omfattningar i förhållande till de aktuella värdena.
CDC::ScrollDC Rullar en rektangel med bitar vågrätt och lodrätt.
CDC::SelectClipPath Väljer den aktuella sökvägen som en urklippsregion för enhetskontexten och kombinerar den nya regionen med alla befintliga urklippsregioner med hjälp av det angivna läget.
CDC::SelectClipRgn Kombinerar den angivna regionen med den aktuella urklippsregionen med hjälp av det angivna läget.
CDC::SelectObject Markerar ett GDI-ritobjekt, till exempel en penna.
CDC::SelectPalette Väljer den logiska paletten.
CDC::SelectStockObject Väljer en av de fördefinierade lagerpennorna, penslar eller teckensnitt som tillhandahålls av Windows.
CDC::SetAbortProc Anger en programdelad återanropsfunktion som Windows anropar om ett utskriftsjobb måste avbrytas.
CDC::SetArcDirection Anger den ritningsriktning som ska användas för funktioner för båge och rektangel.
CDC::SetAttribDC Anger m_hAttribDC, attributenhetskontexten.
CDC::SetBkColor Anger den aktuella bakgrundsfärgen.
CDC::SetBkMode Anger bakgrundsläget.
CDC::SetBoundsRect Styr ackumuleringen av information om avgränsningsrektangel för den angivna enhetskontexten.
CDC::SetBrushOrg Anger ursprunget för nästa pensel som valts i en enhetskontext.
CDC::SetColorAdjustment Anger färgjusteringsvärdena för enhetskontexten med de angivna värdena.
CDC::SetDCBrushColor Anger aktuell penselfärg.
CDC::SetDCPenColor Anger den aktuella pennfärgen.
CDC::SetGraphicsMode Anger aktuellt grafikläge för den angivna enhetskontexten.
CDC::SetLayout Ändrar layouten för en enhetskontext (DC).
CDC::SetMapMode Anger aktuellt mappningsläge.
CDC::SetMapperFlags Ändrar algoritmen som teckensnittsmapparen använder när den mappar logiska teckensnitt till fysiska teckensnitt.
CDC::SetMiterLimit Anger gränsen för längden på miterkopplingar för enhetskontexten.
CDC::SetOutputDC Anger m_hDC, utdataenhetskontexten.
CDC::SetPixel Anger pixeln vid den angivna punkten till närmaste uppskattning av den angivna färgen.
CDC::SetPixelV Anger pixeln vid de angivna koordinaterna till närmaste uppskattning av den angivna färgen. SetPixelV är snabbare än SetPixel eftersom den inte behöver returnera färgvärdet för den målade punkten.
CDC::SetPolyFillMode Anger polygonfyllningsläget.
CDC::SetROP2 Anger aktuellt ritningsläge.
CDC::SetStretchBltMode Anger bitmappssträckande läge.
CDC::SetTextAlign Anger textjusteringsflaggor.
CDC::SetTextCharacterExtra Anger mängden intercharacter-avstånd.
CDC::SetTextColor Anger textfärgen.
CDC::SetTextJustification Lägger till blanksteg i bryttecken i en sträng.
CDC::SetViewportExt Anger x- och y-omfattningen för visningsporten.
CDC::SetViewportOrg Anger visningsportens ursprung.
CDC::SetWindowExt Anger x- och y-omfattningen för det associerade fönstret.
CDC::SetWindowOrg Anger fönstrets ursprung för enhetskontexten.
CDC::SetWorldTransform Anger aktuellt värld-utrymme till sidutrymmestransformering.
CDC::StartDoc Informerar enhetsdrivrutinen om att ett nytt utskriftsjobb startas.
CDC::StartPage Informerar enhetsdrivrutinen om att en ny sida startas.
CDC::StretchBlt Flyttar en bitmapp från en källrektangel och enhet till en målrektangel, sträcker ut eller komprimerar bitmappen om det behövs för att passa målrektangelns dimensioner.
CDC::StrokeAndFillPath Stänger alla öppna figurer i en sökväg, träffar konturen av sökvägen med hjälp av den aktuella pennan och fyller dess inre med hjälp av den aktuella penseln.
CDC::StrokePath Renderar den angivna sökvägen med hjälp av den aktuella pennan.
CDC::TabbedTextOut Skriver en teckensträng på en angiven plats och expanderar flikar till de värden som anges i en matris med tab-stop-positioner.
CDC::TextOut Skriver en teckensträng på en angiven plats med det markerade teckensnittet.
CDC::TransparentBlt Överför ett bitblock med färgdata från den angivna källenhetskontexten till en målenhetskontext, vilket gör en angiven färg transparent i överföringen.
CDC::UpdateColors Uppdaterar klientområdet i enhetskontexten genom att matcha de aktuella färgerna i klientområdet till systempaletten pixel för bildpunkt.
CDC::WidenPath Omdefinierar den aktuella sökvägen som det område som skulle målas om sökvägen linjerades med hjälp av den penna som för närvarande är markerad i enhetskontexten.

Public Operators

Name Description
CDC::operator HDC Hämtar handtaget för enhetskontexten.

Medlemmar i offentliga data

Name Description
CDC::m_hAttribDC Attribut-enhetskontexten som används av det här CDC objektet.
CDC::m_hDC Den utdataenhetskontext som används av det här CDC objektet.

Remarks

Objektet CDC innehåller medlemsfunktioner för att arbeta med en enhetskontext, till exempel en bildskärm eller skrivare, och medlemmar för att arbeta med en visningskontext som är associerad med klientområdet i ett fönster.

Gör all ritning genom medlemsfunktionerna i ett CDC objekt. Klassen tillhandahåller medlemsfunktioner för enhetskontextåtgärder, arbete med ritverktyg, GDI-objektval (type-safe graphics device interface) och arbete med färger och paletter. Den innehåller också medlemsfunktioner för att hämta och ställa in ritattribut, mappa, arbeta med visningsområdet, arbeta med fönstrets omfattning, konvertera koordinater, arbeta med regioner, urklipp, rita linjer och rita enkla former, ellipser och polygoner. Medlemsfunktioner tillhandahålls också för att rita text, arbeta med teckensnitt, använda skrivarrymningar, rulla och spela metafiler.

Om du vill använda ett CDC objekt skapar du det och anropar sedan dess medlemsfunktioner som parallella Windows-funktioner som använder enhetskontexter.

Note

Under Windows 95/98 är alla skärmkoordinater begränsade till 16 bitar. Därför måste en int skickad till en CDC medlemsfunktion ligga i intervallet -32768 till 32767.

För specifika användningsområden tillhandahåller Microsoft Foundation-klassbiblioteket flera klasser som härleds från CDC . CPaintDC kapslar in anrop till BeginPaint och EndPaint. CClientDC hanterar en visningskontext som är associerad med ett fönsters klientområde. CWindowDC hanterar en visningskontext som är associerad med ett helt fönster, inklusive dess ram och kontroller. CMetaFileDC associerar en enhetskontext med en metafil.

CDC innehåller två medlemsfunktioner och GetLayoutSetLayout, för att återställa layouten för en enhetskontext, som inte ärver dess layout från ett fönster. Sådan höger-till-vänster-orientering är nödvändig för program skrivna för kulturer, till exempel arabiska eller hebreiska, där teckenlayouten inte är den europeiska standarden.

CDC innehåller två enhetskontexter m_hDC och m_hAttribDC, som vid skapandet av ett CDC objekt refererar till samma enhet. CDC dirigerar alla utdata-GDI-anrop till m_hDC och de flesta GDI-anrop till m_hAttribDC. (Ett exempel på ett attributanrop är GetTextColor, medan SetTextColor är ett utdataanrop.)

Ramverket använder till exempel dessa två enhetskontexter för att implementera ett CMetaFileDC objekt som skickar utdata till en metafil vid läsning av attribut från en fysisk enhet. Förhandsgranskning implementeras i ramverket på ett liknande sätt. Du kan också använda de två enhetskontexterna på ett liknande sätt i din programspecifika kod.

Det finns tillfällen då du kan behöva textmåttinformation från både enhetskontexterna m_hDC och m_hAttribDC . Följande funktionspar har den här funktionen:

Uses m_hAttribDC Uses m_hDC
GetTextExtent GetOutputTextExtent
GetTabbedTextExtent GetOutputTabbedTextExtent
GetTextMetrics GetOutputTextMetrics
GetCharWidth GetOutputCharWidth

Mer information om CDCfinns i Enhetskontexter.

Inheritance Hierarchy

CObject

CDC

Requirements

Header:afxwin.h

CDC::AbortDoc

Avslutar det aktuella utskriftsjobbet och raderar allt som programmet har skrivit till enheten sedan det senaste anropet StartDoc till medlemsfunktionen.

int AbortDoc();

Return Value

Ett värde som är större än eller lika med 0 om det lyckas, eller ett negativt värde om ett fel har inträffat. I följande lista visas vanliga felvärden och deras betydelser:

  • SP_ERROR Allmänt fel.

  • SP_OUTOFDISK Det finns för närvarande inte tillräckligt med diskutrymme för att spola, och inget mer utrymme blir tillgängligt.

  • SP_OUTOFMEMORY Det finns inte tillräckligt med minne för att spola.

  • SP_USERABORT Användaren avslutade jobbet via Utskriftshanteraren.

Remarks

Den här medlemsfunktionen ersätter skrivarens ABORTDOC escape-funktion.

AbortDoc ska användas för att avsluta följande:

  • Utskriftsåtgärder som inte anger en avbruten funktion med hjälp av SetAbortProc.

  • Utskriftsåtgärder som ännu inte har nått sitt första NEWFRAME eller NEXTBAND escape-anrop.

Om ett program stöter på ett utskriftsfel eller en avbruten utskriftsåtgärd får det inte försöka avsluta åtgärden med hjälp av antingen EndDocAbortDoc eller medlemsfunktionerna i klassen CDC. GDI avslutar automatiskt åtgärden innan felvärdet returneras.

Om programmet visar en dialogruta så att användaren kan avbryta utskriftsåtgärden måste den anropa AbortDoc innan dialogrutan förstörs.

Om Utskriftshanteraren användes för att starta utskriftsjobbet raderar anropet AbortDoc hela buffertjobbet – skrivaren får ingenting. Om Utskriftshanteraren inte användes för att starta utskriftsjobbet kan data ha skickats till skrivaren innan AbortDoc anropades. I det här fallet skulle skrivardrivrutinen ha återställt skrivaren (när det är möjligt) och stängt utskriftsjobbet.

Example

Se exemplet för CDC::StartDoc.

CDC::AbortPath

Stänger och tar bort alla sökvägar i enhetskontexten.

BOOL AbortPath();

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Om det finns en öppen sökvägsparentes i enhetskontexten stängs sökvägsparentesen och sökvägen ignoreras. Om det finns en stängd sökväg i enhetskontexten ignoreras sökvägen.

CDC::AddMetaFileComment

Kopierar kommentaren från en buffert till en angiven metafil i utökat format.

BOOL AddMetaFileComment(
    UINT nDataSize,
    const BYTE* pCommentData);

Parameters

nDataSize
Anger längden på kommentarsbufferten i byte.

pCommentData
Pekar på bufferten som innehåller kommentaren.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

En kommentar kan innehålla eventuell privat information, till exempel bildens källa och det datum då den skapades. En kommentar bör börja med en programsignatur följt av data. Kommentarer får inte innehålla positionsspecifika data. Positionsspecifika data anger platsen för en post och bör inte inkluderas eftersom en metafil kan bäddas in i en annan metafil. Den här funktionen kan bara användas med förbättrade metafiler.

CDC::AlphaBlend

Anropa den här medlemsfunktionen för att visa bitmappar som har transparenta eller halvtransparentera bildpunkter.

BOOL AlphaBlend(
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    BLENDFUNCTION blend);

Parameters

xDest
Anger x-koordinaten i logiska enheter i det övre vänstra hörnet i målrektangeln.

yDest
Anger y-koordinaten i logiska enheter i det övre vänstra hörnet av målrektangeln.

nDestWidth
Anger målrektangelns bredd i logiska enheter.

nDestHeight
Anger målrektangelns höjd i logiska enheter.

pSrcDC
En pekare till källenhetskontexten.

xSrc
Anger x-koordinaten i logiska enheter i det övre vänstra hörnet i källrektangeln.

ySrc
Anger y-koordinaten i logiska enheter i det övre vänstra hörnet av källrektangeln.

nSrcWidth
Anger bredden i logiska enheter för källrektangeln.

nSrcHeight
Anger höjden, i logiska enheter, på källrektangeln.

blend
Anger en BLENDFUNCTION struktur.

Return Value

TRUE om det lyckas. annars FALSE.

Remarks

Mer AlphaBlend information finns i Windows SDK.

CDC::AngleArc

Ritar ett linjesegment och en båge.

BOOL AngleArc(
    int x,
    int y,
    int nRadius,
    float fStartAngle,
    float fSweepAngle);

Parameters

x
Anger den logiska x-koordinaten för cirkelns mittpunkt.

y
Anger den logiska y-koordinaten i mitten av cirkeln.

nRadius
Anger radien för cirkeln i logiska enheter. Det här värdet måste vara positivt.

fStartAngle
Anger startvinkeln i grader i förhållande till x-axeln.

fSweepAngle
Anger svepvinkeln i grader i förhållande till startvinkeln.

Return Value

Nonzero om det lyckas; annars 0.

Remarks

Linjesegmentet ritas från den aktuella positionen till början av bågen. Bågen ritas längs omkretsen av en cirkel med den angivna radien och mitten. Längden på bågen definieras av de angivna start- och svepvinklarna.

AngleArc flyttar den aktuella positionen till bågens slutpunkt. Bågen som ritas av den här funktionen kan verka elliptisk, beroende på aktuell transformering och mappningsläge. Innan du ritar bågen ritar den här funktionen linjesegmentet från den aktuella positionen till början av bågen. Bågen ritas genom att skapa en imaginär cirkel med angiven radie runt den angivna mittpunkten. Startpunkten för bågen bestäms genom att mäta motsols från cirkelns x-axel med antalet grader i startvinkeln. Slutpunkten ligger på samma sätt genom att mäta motsols från startpunkten med antalet grader i svepvinkeln.

Om svepvinkeln är större än 360 grader sveps bågen flera gånger. Den här funktionen ritar linjer med hjälp av den aktuella pennan. Figuren är inte fylld.

CDC::Arc

Ritar en elliptisk båge.

BOOL Arc(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3,
    int x4,
    int y4);

BOOL Arc(
    LPCRECT lpRect,
    POINT ptStart,
    POINT ptEnd);

Parameters

x1
Anger x-koordinaten för det övre vänstra hörnet i avgränsningsrektangeln (i logiska enheter).

y1
Anger y-koordinaten för det övre vänstra hörnet i avgränsningsrektangeln (i logiska enheter).

x2
Anger x-koordinaten för det nedre högra hörnet i avgränsningsrektangeln (i logiska enheter).

y2
Anger y-koordinaten för det nedre högra hörnet i avgränsningsrektangeln (i logiska enheter).

x3
Anger x-koordinaten för den punkt som definierar bågens startpunkt (i logiska enheter). Den här punkten behöver inte ligga exakt på bågen.

y3
Anger y-koordinaten för den punkt som definierar bågens startpunkt (i logiska enheter). Den här punkten behöver inte ligga exakt på bågen.

x4
Anger x-koordinaten för den punkt som definierar bågens slutpunkt (i logiska enheter). Den här punkten behöver inte ligga exakt på bågen.

y4
Anger y-koordinaten för den punkt som definierar bågens slutpunkt (i logiska enheter). Den här punkten behöver inte ligga exakt på bågen.

lpRect
Anger rektangeln för avgränsning (i logiska enheter). Du kan skicka antingen ett LPRECT eller ett CRect objekt för den här parametern.

ptStart
Anger x- och y-koordinaterna för den punkt som definierar bågens startpunkt (i logiska enheter). Den här punkten behöver inte ligga exakt på bågen. Du kan skicka antingen en POINT struktur eller ett CPoint objekt för den här parametern.

ptEnd
Anger x- och y-koordinaterna för den punkt som definierar bågens slutpunkt (i logiska enheter). Den här punkten behöver inte ligga exakt på bågen. Du kan skicka antingen en POINT struktur eller ett CPoint objekt för den här parametern.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Bågen som ritas med hjälp av funktionen är ett segment av ellipsen som definieras av den angivna rektangeln för avgränsning.

Den faktiska startpunkten för bågen är den punkt där en stråle som dras från mitten av avgränsningsrektangeln genom den angivna startpunkten korsar ellipsen. Den faktiska slutpunkten för bågen är den punkt där en stråle som dras från mitten av avgränsningsrektangeln genom den angivna slutpunkten korsar ellipsen. Bågen ritas i motsols. Eftersom en båge inte är en sluten figur är den inte fylld. Både rektangelns bredd och höjd måste vara större än 2 enheter och mindre än 32 767 enheter.

Example

void CDCView::DrawArc(CDC *pDC)
{
   // Fill the client area with a thin circle. The circle's
   // interior is not filled. The circle's perimeter is
   // blue from 6 o'clock to 3 o'clock and red from 3
   // o'clock to 6 o'clock.

   // Get the client area.
   CRect rectClient;
   GetClientRect(rectClient);

   // Make a couple of pens.
   CPen penBlue;
   CPen penRed;
   CPen *pOldPen;

   penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
   penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));

   // Draw from 3 o'clock to 6 o'clock, counterclockwise,
   // in a blue pen.

   pOldPen = pDC->SelectObject(&penBlue);

   pDC->Arc(rectClient,
            CPoint(rectClient.right, rectClient.CenterPoint().y),
            CPoint(rectClient.CenterPoint().x, rectClient.right));

   // Draw from 6 o'clock to 3 o'clock, counterclockwise,
   // in a red pen.
   pDC->SelectObject(&penRed);

   // Keep the same parameters, but reverse start
   // and end points.
   pDC->Arc(rectClient,
            CPoint(rectClient.CenterPoint().x, rectClient.right),
            CPoint(rectClient.right, rectClient.CenterPoint().y));

   // Restore the previous pen.
   pDC->SelectObject(pOldPen);
}

CDC::ArcTo

Ritar en elliptisk båge.

BOOL ArcTo(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3,
    int x4,
    int y4);

BOOL ArcTo(
    LPCRECT lpRect,
    POINT ptStart,
    POINT ptEnd);

Parameters

x1
Anger x-koordinaten för det övre vänstra hörnet i avgränsningsrektangeln (i logiska enheter).

y1
Anger y-koordinaten för det övre vänstra hörnet i avgränsningsrektangeln (i logiska enheter).

x2
Anger x-koordinaten för det nedre högra hörnet i avgränsningsrektangeln (i logiska enheter).

y2
Anger y-koordinaten för det nedre högra hörnet i avgränsningsrektangeln (i logiska enheter).

x3
Anger x-koordinaten för den punkt som definierar bågens startpunkt (i logiska enheter). Den här punkten behöver inte ligga exakt på bågen.

y3
Anger y-koordinaten för den punkt som definierar bågens startpunkt (i logiska enheter). Den här punkten behöver inte ligga exakt på bågen.

x4
Anger x-koordinaten för den punkt som definierar bågens slutpunkt (i logiska enheter). Den här punkten behöver inte ligga exakt på bågen.

y4
Anger y-koordinaten för den punkt som definierar bågens slutpunkt (i logiska enheter). Den här punkten behöver inte ligga exakt på bågen.

lpRect
Anger rektangeln för avgränsning (i logiska enheter). Du kan skicka antingen en pekare till en RECT datastruktur eller ett CRect objekt för den här parametern.

ptStart
Anger x- och y-koordinaterna för den punkt som definierar bågens startpunkt (i logiska enheter). Den här punkten behöver inte ligga exakt på bågen. Du kan skicka antingen en POINT datastruktur eller ett CPoint objekt för den här parametern.

ptEnd
Anger x- och y-koordinaterna för den punkt som definierar bågens slutpunkt (i logiska enheter). Den här punkten behöver inte ligga exakt på bågen. Du kan skicka antingen en POINT datastruktur eller ett CPoint objekt för den här parametern.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Den här funktionen liknar CDC::Arc, förutom att den aktuella positionen uppdateras. Punkterna ( x1, y1) och ( x2, y2) anger avgränsningsrektangeln. En ellips som bildas av den givna avgränsningsrektangeln definierar bågens kurva. Bågen utökar motsols (standardbågens riktning) från den punkt där den korsar den radiella linjen från mitten av avgränsningsrektangeln till ( x3, y3). Bågen slutar där den korsar den radiella linjen från mitten av avgränsningsrektangeln till ( x4, y4). Om startpunkten och slutpunkten är samma ritas en fullständig ellips.

En linje dras från den aktuella positionen till bågens startpunkt. Om inget fel inträffar anges den aktuella positionen till bågens slutpunkt. Bågen ritas med den aktuella pennan; Den är inte fylld.

CDC::Attach

Använd den här medlemsfunktionen för att koppla en hDC till objektet CDC .

BOOL Attach(HDC hDC);

Parameters

hDC
En Windows-enhetskontext.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

hDC lagras i både m_hDC, utdataenhetskontexten och i m_hAttribDCattributet enhetskontext.

CDC::BeginPath

Öppnar en sökvägsparentes i enhetskontexten.

BOOL BeginPath();

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

När en sökvägsparentes är öppen kan ett program börja anropa GDI-ritningsfunktioner för att definiera de punkter som ligger i sökvägen. Ett program kan stänga en öppen sökvägsparentes genom att anropa EndPath medlemsfunktionen. När ett program anropar BeginPathignoreras alla tidigare sökvägar.

En BeginPath lista över de ritfunktioner som definierar punkter i en sökväg finns i Windows SDK.

Example

// This implementation uses GDI paths to draw the outline of
// some text in a TrueType font. The path is used to record the way
// the TrueType font would be drawn. Then, the function uses the data
// returned from CDC::GetPath() to draw the font--without filling it.
void CDCView::DrawPath(CDC *pDC)
{
   // Describe a 24-point truetype font of normal weight
   LOGFONT lf;
   memset(&lf, 0, sizeof(lf));
   lf.lfHeight = -MulDiv(24, pDC->GetDeviceCaps(LOGPIXELSY), 72);
   lf.lfWeight = FW_NORMAL;
   lf.lfOutPrecision = OUT_TT_ONLY_PRECIS;

   // create and select it
   CFont newFont;
   if (!newFont.CreateFontIndirect(&lf))
      return;
   CFont *pOldFont = pDC->SelectObject(&newFont);

   // use a path to record how the text was drawn
   pDC->BeginPath();
   pDC->TextOut(10, 10, _T("Outline this!"));
   pDC->EndPath();

   // Find out how many points are in the path. Note that
   // for long strings or complex fonts, this number might be
   // gigantic!
   int nNumPts = pDC->GetPath(NULL, NULL, 0);
   if (nNumPts == 0)
      return;

   // Allocate memory to hold points and stroke types from
   // the path.
   LPPOINT lpPoints = NULL;
   LPBYTE lpTypes = NULL;
   try
   {
      lpPoints = new POINT[nNumPts];
      lpTypes = new BYTE[nNumPts];
   }
   catch (CException *pe)
   {
      delete[] lpPoints;
      lpPoints = NULL;
      delete[] lpTypes;
      lpTypes = NULL;
      pe->Delete();
   }
   if (lpPoints == NULL || lpTypes == NULL)
      return;

   // Now that we have the memory, really get the path data.
   nNumPts = pDC->GetPath(lpPoints, lpTypes, nNumPts);

   // If it worked, draw the lines. Windows 98 doesn't support
   // the PolyDraw API, so we use our own member function to do
   // similar work. If you're targeting only later versions of
   // Windows, you can use the PolyDraw() API and avoid the
   // COutlineView::PolyDraw() member function.

   if (nNumPts != -1)
      pDC->PolyDraw(lpPoints, lpTypes, nNumPts);

   // Release the memory we used
   delete[] lpPoints;
   delete[] lpTypes;

   // Put back the old font
   pDC->SelectObject(pOldFont);

   return;
}

CDC::BitBlt

Kopierar en bitmapp från källenhetskontexten till den aktuella enhetskontexten.

BOOL BitBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    DWORD dwRop);

Parameters

x
Anger den logiska x-koordinaten i det övre vänstra hörnet i målrektangeln.

y
Anger den logiska y-koordinaten i det övre vänstra hörnet i målrektangeln.

nWidth
Anger bredden (i logiska enheter) för målrektangeln och källbitmappen.

nHeight
Anger höjden (i logiska enheter) för målrektangeln och källbitmappen.

pSrcDC
Pekare till ett CDC objekt som identifierar enhetskontexten som bitmappen ska kopieras från. Det måste vara NULL om dwRop anger en rasteråtgärd som inte innehåller någon källa.

xSrc
Anger den logiska x-koordinaten i det övre vänstra hörnet i källbitmappen.

ySrc
Anger den logiska y-koordinaten i det övre vänstra hörnet i källbitmappen.

dwRop
Anger vilken rasteråtgärd som ska utföras. Rastreringskoder definierar hur GDI kombinerar färger i utdataåtgärder som omfattar en aktuell pensel, en möjlig källbitmapp och en målbitmapp. I BitBlt Windows SDK finns en lista över raster-operation-koderna för dwRop och deras beskrivningar

En fullständig lista över raster-åtgärdskoder finns i Om Raster-åtgärdskoder i Windows SDK.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Programmet kan justera fönstren eller klientområdena på bytegränser för att säkerställa att BitBlt åtgärderna utförs på bytejusterade rektanglar. (Ange flaggorna CS_BYTEALIGNWINDOW eller CS_BYTEALIGNCLIENT när du registrerar fönsterklasserna.)

BitBlt åtgärder på bytejusterade rektanglar är betydligt snabbare än BitBlt åtgärder på rektanglar som inte är bytejusterade. Om du vill ange klassformat, till exempel bytejustering för din egen enhetskontext, måste du registrera en fönsterklass i stället för att förlita dig på Microsoft Foundation-klasserna för att göra det åt dig. Använd den globala funktionen AfxRegisterWndClass.

GDI transformerar nWidth och nHeight, en gång med hjälp av målenhetskontexten och en gång med hjälp av källenhetskontexten. Om de resulterande utsträckningarna inte matchar använder GDI Windows-funktionen StretchBlt för att komprimera eller sträcka ut källbitmappen efter behov.

Om mål-, käll- och mönsterbitmappar inte har samma färgformat BitBlt konverterar funktionen käll- och mönsterbitmapparna så att de matchar målet. Förgrunds- och bakgrundsfärgerna i målbitmappen används i konverteringen.

BitBlt När funktionen konverterar en monokrom bitmapp till färg, anger den vita bitar (1) till bakgrundsfärgen och svarta bitar (0) till förgrundsfärgen. Förgrunds- och bakgrundsfärgerna i målenhetskontexten används. Om du vill konvertera färg till monokrom anger BitBlt du pixlar som matchar bakgrundsfärgen till vitt och anger alla andra bildpunkter till svarta. BitBlt använder förgrunds- och bakgrundsfärgerna i färgenhetskontexten för att konvertera från färg till monokrom.

Alla enhetskontexter stöder BitBltinte . Om du vill kontrollera om en viss enhetskontext stöder BitBltanvänder du GetDeviceCaps medlemsfunktionen och anger RASTERCAPS-indexet.

Example

Se exemplet för CDC::CreateCompatibleDC.

CDC::CDC

Konstruerar ett CDC objekt.

CDC();

CDC::Chord

Ritar ett ackord (en sluten figur som avgränsas av skärningspunkten mellan en ellips och ett linjesegment).

BOOL Chord(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3,
    int x4,
    int y4);

BOOL Chord(
    LPCRECT lpRect,
    POINT ptStart,
    POINT ptEnd);

Parameters

x1
Anger x-koordinaten för det övre vänstra hörnet i ackordets rektangel för avgränsning (i logiska enheter).

y1
Anger y-koordinaten för det övre vänstra hörnet i ackordets rektangel för avgränsning (i logiska enheter).

x2
Anger x-koordinaten för det nedre högra hörnet i ackordets rektangel för avgränsning (i logiska enheter).

y2
Anger y-koordinaten för det nedre högra hörnet i ackordets rektangel för avgränsning (i logiska enheter).

x3
Anger x-koordinaten för den punkt som definierar ackordets startpunkt (i logiska enheter).

y3
Anger y-koordinaten för den punkt som definierar ackordets startpunkt (i logiska enheter).

x4
Anger x-koordinaten för den punkt som definierar ackordets slutpunkt (i logiska enheter).

y4
Anger y-koordinaten för den punkt som definierar ackordets slutpunkt (i logiska enheter).

lpRect
Anger rektangeln för avgränsning (i logiska enheter). Du kan skicka antingen ett LPRECT eller ett CRect objekt för den här parametern.

ptStart
Anger x- och y-koordinaterna för den punkt som definierar ackordets startpunkt (i logiska enheter). Den här punkten behöver inte ligga exakt på ackordet. Du kan skicka antingen en POINT struktur eller ett CPoint objekt för den här parametern.

ptEnd
Anger x- och y-koordinaterna för den punkt som definierar ackordets slutpunkt (i logiska enheter). Den här punkten behöver inte ligga exakt på ackordet. Du kan skicka antingen en POINT struktur eller ett CPoint objekt för den här parametern.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Parametrarna ( x1, y1) och ( x2, y2) anger de övre vänstra respektive nedre högra hörnen för en rektangel som avgränsar den ellips som ingår i ackordet. Parametrarna ( x3, y3) och ( x4, y4) anger slutpunkterna för en rad som korsar ellipsen. Ackordet ritas med hjälp av den valda pennan och fylls med hjälp av den valda penseln.

Figuren Chord som ritas av funktionen sträcker sig upp till, men innehåller inte koordinaterna till höger och nederkant. Det innebär att figurens höjd är y2 - y1 och att bildens bredd är .x2 - x1

Example

void CDCView::DrawChord(CDC *pDC)
{
   // Fill the client area with a circle. The circle is
   // blue and filled with blue, but has a chord cut out
   // of it from 3 o'clock to 6 o'clock. That chord is
   // red and filled with a red diagonal hatch.

   // Get the client area.
   CRect rectClient;
   GetClientRect(rectClient);

   // Make a couple of pens and similar brushes.
   CPen penBlue, penRed;
   CBrush brushBlue, brushRed;
   CBrush *pOldBrush;
   CPen *pOldPen;

   brushBlue.CreateSolidBrush(RGB(0, 0, 255));
   brushRed.CreateHatchBrush(HS_FDIAGONAL, RGB(255, 0, 0));
   penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
   penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));

   // Draw from 3 o'clock to 6 o'clock, counterclockwise,
   // in a blue pen with a solid blue fill.
   pOldPen = pDC->SelectObject(&penBlue);
   pOldBrush = pDC->SelectObject(&brushBlue);

   pDC->Chord(rectClient,
              CPoint(rectClient.right, rectClient.CenterPoint().y),
              CPoint(rectClient.CenterPoint().x, rectClient.right));

   // Draw the remaining quarter chord from 6 o'clock
   // to 3 o'clock, counterclockwise, in a red pen
   // with the hatched brush.
   pDC->SelectObject(&penRed);
   pDC->SelectObject(&brushRed);

   // Keep the same parameters, but reverse start and
   // end points.
   pDC->Chord(rectClient,
              CPoint(rectClient.CenterPoint().x, rectClient.right),
              CPoint(rectClient.right, rectClient.CenterPoint().y));

   // Restore the previous pen.
   pDC->SelectObject(pOldPen);
}

CDC::CloseFigure

Stänger en öppen bild i en sökväg.

BOOL CloseFigure();

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Funktionen stänger figuren genom att rita en linje från den aktuella positionen till figurens första punkt (vanligtvis den punkt som anges av det senaste anropet MoveTo till medlemsfunktionen) och ansluter linjerna med hjälp av linjekopplingsformatet. Om en bild stängs med hjälp LineTo av medlemsfunktionen i stället för CloseFigureanvänds slutlock för att skapa hörnet i stället för en koppling. CloseFigure ska bara anropas om det finns en öppen sökvägsparentes i enhetskontexten.

En bild i en sökväg är öppen om den inte uttryckligen stängs med hjälp av den här funktionen. (En bild kan vara öppen även om den aktuella punkten och bildens startpunkt är desamma.) Alla linjer eller kurvor som läggs till i sökvägen efter CloseFigure att en ny bild har startats.

CDC::CreateCompatibleDC

Skapar en minnesenhetskontext som är kompatibel med den enhet som anges av pDC.

BOOL CreateCompatibleDC(CDC* pDC);

Parameters

pDC
En pekare till en enhetskontext. Om pDC är NULLskapar funktionen en minnesenhetskontext som är kompatibel med systemvisningen.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

En minnesenhetskontext är ett minnesblock som representerar en visningsyta. Den kan användas för att förbereda bilder i minnet innan du kopierar dem till den kompatibla enhetens faktiska enhetsyta.

När en minnesenhetskontext skapas väljer GDI automatiskt en monokrom lagerbitmapp med 1 gånger 1 för den. GDI-utdatafunktioner kan endast användas med en minnesenhetskontext om en bitmapp har skapats och valts i den kontexten.

Den här funktionen kan bara användas för att skapa kompatibla enhetskontexter för enheter som stöder rasteråtgärder. CDC::BitBlt Se medlemsfunktionen för information om bitblocksöverföringar mellan enhetskontexter. Information om huruvida en enhetskontext stöder rasteråtgärder finns RC_BITBLT i rasterfunktionen i medlemsfunktionen CDC::GetDeviceCaps.

Example

// This handler loads a bitmap from system resources,
// centers it in the view, and uses BitBlt() to paint the bitmap
// bits.
void CDCView::DrawBitmap(CDC *pDC)
{
   // load IDB_BITMAP1 from our resources
   CBitmap bmp;
   if (bmp.LoadBitmap(IDB_BITMAP1))
   {
      // Get the size of the bitmap
      BITMAP bmpInfo;
      bmp.GetBitmap(&bmpInfo);

      // Create an in-memory DC compatible with the
      // display DC we're using to paint
      CDC dcMemory;
      dcMemory.CreateCompatibleDC(pDC);

      // Select the bitmap into the in-memory DC
      CBitmap *pOldBitmap = dcMemory.SelectObject(&bmp);

      // Find a centerpoint for the bitmap in the client area
      CRect rect;
      GetClientRect(&rect);
      int nX = rect.left + (rect.Width() - bmpInfo.bmWidth) / 2;
      int nY = rect.top + (rect.Height() - bmpInfo.bmHeight) / 2;

      // Copy the bits from the in-memory DC into the on-
      // screen DC to actually do the painting. Use the centerpoint
      // we computed for the target offset.
      pDC->BitBlt(nX, nY, bmpInfo.bmWidth, bmpInfo.bmHeight, &dcMemory,
                  0, 0, SRCCOPY);

      dcMemory.SelectObject(pOldBitmap);
   }
   else
   {
      TRACE0("ERROR: Where's IDB_BITMAP1?\n");
   }
}

CDC::CreateDC

Skapar en enhetskontext för den angivna enheten.

BOOL CreateDC(
    LPCTSTR lpszDriverName,
    LPCTSTR lpszDeviceName,
    LPCTSTR lpszOutput,
    const void* lpInitData);

Parameters

lpszDriverName
Pekar på en null-avslutad sträng som anger filnamnet (utan tillägg) för enhetsdrivrutinen (till exempel "EPSON"). Du kan också skicka ett CString objekt för den här parametern.

lpszDeviceName
Pekar på en null-avslutad sträng som anger namnet på den specifika enhet som ska stödjas (till exempel "EPSON FX-80"). Parametern lpszDeviceName används om modulen stöder fler än en enhet. Du kan också skicka ett CString objekt för den här parametern.

lpszOutput
Pekar på en null-avslutad sträng som anger fil- eller enhetsnamnet för det fysiska utdatamediet (fil- eller utdataport). Du kan också skicka ett CString objekt för den här parametern.

lpInitData
Pekar på en DEVMODE struktur som innehåller enhetsspecifika initieringsdata för enhetsdrivrutinen. Windows-funktionen DocumentProperties hämtar den här strukturen ifylld för en viss enhet. Parametern lpInitData måste vara NULL om enhetsdrivrutinen ska använda standardinitieringen (om någon) som anges av användaren via Kontrollpanelen.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Huvudfilen PRINT.H krävs om DEVMODE strukturen används.

Enhetsnamn följer dessa konventioner: ett slutkolon (:) rekommenderas, men valfritt. Windows tar bort det avslutande kolonet så att ett enhetsnamn som slutar med ett kolon mappas till samma port som samma namn utan kolon. Drivrutins- och portnamnen får inte innehålla inledande eller avslutande blanksteg. GDI-utdatafunktioner kan inte användas med informationskontexter.

CDC::CreateIC

Skapar en informationskontext för den angivna enheten.

BOOL CreateIC(
    LPCTSTR lpszDriverName,
    LPCTSTR lpszDeviceName,
    LPCTSTR lpszOutput,
    const void* lpInitData);

Parameters

lpszDriverName
Pekar på en null-avslutad sträng som anger filnamnet (utan tillägg) för enhetsdrivrutinen (till exempel "EPSON"). Du kan skicka ett CString objekt för den här parametern.

lpszDeviceName
Pekar på en null-avslutad sträng som anger namnet på den specifika enhet som ska stödjas (till exempel "EPSON FX-80"). Parametern lpszDeviceName används om modulen stöder fler än en enhet. Du kan skicka ett CString objekt för den här parametern.

lpszOutput
Pekar på en null-avslutad sträng som anger fil- eller enhetsnamnet för det fysiska utdatamediet (fil eller port). Du kan skicka ett CString objekt för den här parametern.

lpInitData
Pekar på enhetsspecifika initieringsdata för enhetsdrivrutinen. Parametern lpInitData måste vara NULL om enhetsdrivrutinen ska använda standardinitieringen (om någon) som anges av användaren via Kontrollpanelen. Se CreateDC för dataformatet för enhetsspecifik initiering.

Return Value

Nonzero om det lyckas; annars 0.

Remarks

Informationskontexten ger ett snabbt sätt att få information om enheten utan att skapa en enhetskontext.

Enhetsnamn följer dessa konventioner: ett slutkolon (:) rekommenderas, men valfritt. Windows tar bort det avslutande kolonet så att ett enhetsnamn som slutar med ett kolon mappas till samma port som samma namn utan kolon. Drivrutins- och portnamnen får inte innehålla inledande eller avslutande blanksteg. GDI-utdatafunktioner kan inte användas med informationskontexter.

CDC::DeleteDC

Anropa i allmänhet inte den här funktionen. destructor kommer att göra det åt dig.

BOOL DeleteDC();

Return Value

Nonzero om funktionen har slutförts. annars 0.

Remarks

Medlemsfunktionen DeleteDC tar bort de Windows-enhetskontexter som är associerade med m_hDC i det aktuella CDC objektet. Om det här CDC objektet är den sista aktiva enhetskontexten för en viss enhet släpps alla lagrings- och systemresurser som används av enheten.

Ett program bör inte anropa DeleteDC om objekt har valts i enhetskontexten. Objekt måste först väljas ut ur enhetskontexten innan de tas bort.

Ett program får inte ta bort en enhetskontext vars handtag hämtades genom att anropa CWnd::GetDC. I stället måste den anropa CWnd::ReleaseDC för att frigöra enhetskontexten. Klasserna CClientDC och CWindowDC tillhandahålls för att omsluta den här funktionen.

Funktionen DeleteDC används vanligtvis för att ta bort enhetskontexter som skapats med CreateDC, CreateICeller CreateCompatibleDC.

Example

Se exemplet för CPrintDialog::GetPrinterDC.

CDC::DeleteTempMap

Anropas automatiskt av vilolägeshanteraren CWinApp och DeleteTempMap tar bort alla temporära CDC objekt som skapats av FromHandle, men förstör inte de enhetskontextreferenser somhDC tillfälligt är associerade med objekten CDC .

static void PASCAL DeleteTempMap();

CDC::Detach

Anropa den här funktionen för att koppla m_hDC från (utdataenhetskontexten CDC ) från objektet och ange både m_hDC och m_hAttribDC till NULL.

HDC Detach();

Return Value

En Windows-enhetskontext.

CDC::DPtoHIMETRIC

Använd den här funktionen när du ger HIMETRIC storlekar till OLE och konverterar bildpunkter till HIMETRIC.

void DPtoHIMETRIC(LPSIZE lpSize) const;

Parameters

lpSize
Pekar på en SIZE-struktur eller CSize ett objekt.

Remarks

Om mappningsläget för objektet för enhetskontexten är MM_LOENGLISH, MM_HIENGLISH, MM_LOMETRICeller MM_HIMETRIC, baseras konverteringen på antalet bildpunkter i den fysiska tum. Om mappningsläget är ett av de andra icke-begränsade lägena (till exempel MM_TEXT), baseras konverteringen på antalet pixlar i den logiska tum.

CDC::DPtoLP

Konverterar enhetsenheter till logiska enheter.

void DPtoLP(
    LPPOINT lpPoints,
    int nCount = 1) const;

void DPtoLP(LPRECT lpRect) const;
void DPtoLP(LPSIZE lpSize) const;

Parameters

lpPoints
Pekar på en matris med POINT strukturer eller CPoint objekt.

nCount
Antalet punkter i matrisen.

lpRect
Pekar på en struktur eller RECT ett CRect objekt. Den här parametern används för att enkelt konvertera en rektangel från enhetspunkter till logiska punkter.

lpSize
Pekar på en struktur eller SIZE ett CSize objekt.

Remarks

Funktionen mappar koordinaterna för varje punkt, eller dimension av en storlek, från enhetens koordinatsystem till GDI:s logiska koordinatsystem. Konverteringen beror på det aktuella mappningsläget och inställningarna för ursprung och omfattningar för enhetens fönster och visningsport.

CDC::Draw3dRect

Anropa den här medlemsfunktionen för att rita en tredimensionell rektangel.

void Draw3dRect(
    LPCRECT lpRect,
    COLORREF clrTopLeft,
    COLORREF clrBottomRight);

void Draw3dRect(
    int x,
    int y,
    int cx,
    int cy,
    COLORREF clrTopLeft,
    COLORREF clrBottomRight);

Parameters

lpRect
Anger rektangeln för avgränsning (i logiska enheter). Du kan skicka antingen en pekare till en RECT struktur eller ett CRect objekt för den här parametern.

clrTopLeft
Anger färgen på den tredimensionella rektangelns övre och vänstra sidor.

clrBottomRight
Anger färgen på den tredimensionella rektangelns nedre och högra sidor.

x
Anger den logiska x-koordinaten i det övre vänstra hörnet i den tredimensionella rektangeln.

y
Anger den logiska y-koordinaten i det övre vänstra hörnet i den tredimensionella rektangeln.

cx
Anger bredden på den tredimensionella rektangeln.

cy
Anger höjden på den tredimensionella rektangeln.

Remarks

Rektangeln ritas med de övre och vänstra sidorna i den färg som anges av clrTopLeft och de nedre och högra sidorna i den färg som anges av clrBottomRight.

Example

void CDCView::Draw3dRect(CDC *pDC)
{
   // get the client area
   CRect rect;
   GetClientRect(rect);

   // shrink our rect 20 pixels on all sides
   rect.DeflateRect(20, 20);

   // draw a rectangle with red top and left sides, and
   // green right and bottom sides.
   pDC->Draw3dRect(rect, RGB(255, 0, 0), RGB(0, 255, 0));

   // This call to the four-integer override would draw
   // the same rectangle with a little less convenience:

   // pDC->Draw3dRect(rect.left, rect.top, rect.Width(), rect.Height(),
   //    RGB(255, 0, 0), RGB(0, 255, 0));
}

CDC::DrawDragRect

Anropa den här medlemsfunktionen upprepade gånger för att rita om en dra-rektangel.

void DrawDragRect(
    LPCRECT lpRect,
    SIZE size,
    LPCRECT lpRectLast,
    SIZE sizeLast,
    CBrush* pBrush = NULL,
    CBrush* pBrushLast = NULL);

Parameters

lpRect
Pekar på en RECT struktur eller ett CRect objekt som anger de logiska koordinaterna för en rektangel – i det här fallet slutpositionen för rektangeln som ritas om.

size
Anger förskjutningen från det övre vänstra hörnet av den yttre kantlinjen till det övre vänstra hörnet av den inre kantlinjen (dvs. kantlinjens tjocklek) för en rektangel.

lpRectLast
Pekar på en RECT struktur eller ett CRect objekt som anger de logiska koordinaterna för positionen för en rektangel – i det här fallet den ursprungliga positionen för rektangeln som ritas om.

sizeLast
Anger förskjutningen från det övre vänstra hörnet av den yttre kantlinjen till det övre vänstra hörnet av den inre kantlinjen (dvs. kantlinjens tjocklek) för den ursprungliga rektangel som ritas om.

pBrush
Pekare mot ett penselobjekt. NULL Ställ in på för att använda standardpenseln för halvton.

pBrushLast
Pekare till det sista penselobjektet som användes. NULL Ställ in på för att använda standardpenseln för halvton.

Remarks

Anropa den i en loop när du provar muspositionen för att ge visuell feedback. När du anropar DrawDragRectraderas den tidigare rektangeln och en ny ritas. När användaren till exempel drar en rektangel över skärmen DrawDragRect raderar den ursprungliga rektangeln och ritar om en ny i sin nya position. Som standard DrawDragRect ritar rektangeln med hjälp av en halvtonsborste för att eliminera flimmer och för att skapa utseendet på en smidigt rörlig rektangel.

Första gången du anropar DrawDragRectska parametern lpRectLast vara NULL.

CDC::DrawEdge

Anropa den här medlemsfunktionen för att rita kanterna på en rektangel av den angivna typen och formatet.

BOOL DrawEdge(
    LPRECT lpRect,
    UINT nEdge,
    UINT nFlags);

Parameters

lpRect
En pekare till en RECT struktur som innehåller rektangelns logiska koordinater.

nEdge
Anger vilken typ av inre och yttre kant som ska ritas. Den här parametern måste vara en kombination av en inre kantflagga och en flagga för yttre kantlinjer. En DrawEdge tabell med parametertyper finns i Windows SDK.

nFlags
Flaggorna som anger vilken typ av kantlinje som ska ritas. I DrawEdge Windows SDK finns en tabell med parameterns värden. För diagonala linjer anger flaggorna BF_RECT slutpunkten för den vektor som avgränsas av rektangelparametern.

Return Value

Nonzero om det lyckas; annars 0.

CDC::DrawEscape

Åtkomst till ritningsfunktioner i en videovisning som inte är direkt tillgänglig via grafikenhetsgränssnittet (GDI).

int DrawEscape(
    int nEscape,
    int nInputSize,
    LPCSTR lpszInputData);

Parameters

nEscape
Anger den escape-funktion som ska utföras.

nInputSize
Anger antalet byte med data som parametern pekar på lpszInputData .

lpszInputData
Pekar på den indatastruktur som krävs för den angivna escape-åtgärden.

Return Value

Anger resultatet av funktionen. Större än noll om det QUERYESCSUPPORT lyckas, förutom draw escape, som endast söker efter implementering, eller noll om escape inte implementeras, eller mindre än noll om ett fel uppstod.

Remarks

När ett program anropar DrawEscapeskickas de data som identifieras av nInputSize och lpszInputData direkt till den angivna visningsdrivrutinen.

CDC::DrawFocusRect

Ritar en rektangel i det format som används för att indikera att rektangeln har fokus.

void DrawFocusRect(LPCRECT lpRect);

Parameters

lpRect
Pekar på en RECT struktur eller ett CRect objekt som anger de logiska koordinaterna för den rektangel som ska ritas.

Remarks

Eftersom det här är en boolesk XOR-funktion (^) tar anrop av den här funktionen en andra gång med samma rektangel bort rektangeln från skärmen. Rektangeln som ritas av den här funktionen kan inte rullas. Om du vill rulla ett område som innehåller en rektangel ritad av den här funktionen anropar DrawFocusRect du först för att ta bort rektangeln från skärmen, rullar sedan området och anropar DrawFocusRect sedan igen för att rita rektangeln i den nya positionen.

Caution

DrawFocusRect fungerar endast i MM_TEXT läge. I andra lägen ritar den här funktionen inte fokusrektangeln korrekt, men den returnerar inte felvärden.

CDC::DrawFrameControl

Anropa den här medlemsfunktionen för att rita en ramkontroll av den angivna typen och formatet.

BOOL DrawFrameControl(
    LPRECT lpRect,
    UINT nType,
    UINT nState);

Parameters

lpRect
En pekare till en RECT struktur som innehåller rektangelns logiska koordinater.

nType
Anger vilken typ av ramkontroll som ska ritas. Se parametern uType i DrawFrameControl Windows SDK för en lista över den här parameterns möjliga värden.

nState
Anger ramkontrollens ursprungliga tillstånd. Kan vara ett eller flera av de värden som beskrivs för parametern uState i DrawFrameControl Windows SDK. Använd värdet nStateDFCS_ADJUSTRECT för att justera avgränsningsrektangeln för att undanta den omgivande kanten av push-knappen.

Return Value

Nonzero om det lyckas; annars 0.

Remarks

I flera fall nState beror på parametern nType . I följande lista visas relationen mellan de fyra nType värdena och nState:

  • DFC_BUTTON

    • DFCS_BUTTON3STATE Trelägesknapp

    • DFCS_BUTTONCHECK Kryssruta

    • DFCS_BUTTONPUSH Tryckknapp

    • DFCS_BUTTONRADIO Alternativknapp

    • DFCS_BUTTONRADIOIMAGE Bild för alternativknapp (icke-kvart behöver avbildning)

    • DFCS_BUTTONRADIOMASK Mask för alternativknapp (icke-kvart behöver mask)

  • DFC_CAPTION

    • DFCS_CAPTIONCLOSE Knappen Stäng

    • DFCS_CAPTIONHELP Hjälp-knappen

    • DFCS_CAPTIONMAX Knappen Maximera

    • DFCS_CAPTIONMIN Knappen Minimera

    • DFCS_CAPTIONRESTORE Knappen Återställ

  • DFC_MENU

    • DFCS_MENUARROW Undermenypil

    • DFCS_MENUBULLET Kula

    • DFCS_MENUCHECK Bock

  • DFC_SCROLL

    • DFCS_SCROLLCOMBOBOX Rullningslist för kombinationsruta

    • DFCS_SCROLLDOWN Nedåtpil för rullningslist

    • DFCS_SCROLLLEFT Vänsterpil i rullningslisten

    • DFCS_SCROLLRIGHT Rullningslistens högerpil

    • DFCS_SCROLLSIZEGRIP Storlekshandtag i nedre högra hörnet av fönstret

    • DFCS_SCROLLUP Uppåtpil i rullningslisten

Example

Den här koden ritar storlekshandtaget i fönstrets nedre högra hörn. Det är lämpligt för hanteraren för OnPaint en dialogruta, som inte har några format och normalt inte innehåller andra kontroller (t.ex. ett statusfält) som kan ge den ett storlekshandtag.

void CDCView::DrawFC(CDC *pDC)
{
   CRect rc;
   GetClientRect(&rc);

   rc.left = rc.right - ::GetSystemMetrics(SM_CXHSCROLL);
   rc.top = rc.bottom - ::GetSystemMetrics(SM_CYVSCROLL);

   pDC->DrawFrameControl(rc, DFC_SCROLL, DFCS_SCROLLSIZEGRIP);
}

CDC::DrawIcon

Ritar en ikon på enheten som representeras av det aktuella CDC objektet.

BOOL DrawIcon(
    int x,
    int y,
    HICON hIcon);

BOOL DrawIcon(
    POINT point,
    HICON hIcon);

Parameters

x
Anger den logiska x-koordinaten i ikonens övre vänstra hörn.

y
Anger den logiska y-koordinaten i ikonens övre vänstra hörn.

hIcon
Identifierar handtaget för ikonen som ska ritas.

point
Anger de logiska x- och y-koordinaterna i ikonens övre vänstra hörn. Du kan skicka en POINT struktur eller ett CPoint objekt för den här parametern.

Return Value

Nonzero om funktionen har slutförts. annars 0.

Remarks

Funktionen placerar ikonens övre vänstra hörn på den plats som anges av x och y. Platsen omfattas av det aktuella mappningsläget för enhetskontexten.

Ikonresursen måste ha lästs in tidigare med hjälp av funktionerna CWinApp::LoadIcon, CWinApp::LoadStandardIconeller CWinApp::LoadOEMIcon. Mappningsläget MM_TEXT måste väljas innan du använder den här funktionen.

Example

Se exemplet för CWnd::IsIconic.

CDC::DrawState

Anropa den här medlemsfunktionen för att visa en bild och tillämpa en visuell effekt för att ange ett tillstånd, till exempel ett inaktiverat eller standardtillstånd.

Note

För alla nFlag tillstånd utom DSS_NORMALkonverteras bilden till monokrom innan den visuella effekten tillämpas.

BOOL DrawState(
    CPoint pt,
    CSize size,
    HBITMAP hBitmap,
    UINT nFlags,
    HBRUSH hBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    CBitmap* pBitmap,
    UINT nFlags,
    CBrush* pBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    HICON hIcon,
    UINT nFlags,
    HBRUSH hBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    HICON hIcon,
    UINT nFlags,
    CBrush* pBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    LPCTSTR lpszText,
    UINT nFlags,
    BOOL bPrefixText = TRUE,
    int nTextLen = 0,
    HBRUSH hBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    LPCTSTR lpszText,
    UINT nFlags,
    BOOL bPrefixText = TRUE,
    int nTextLen = 0,
    CBrush* pBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    DRAWSTATEPROC lpDrawProc,
    LPARAM lData,
    UINT nFlags,
    HBRUSH hBrush = NULL);

BOOL DrawState(
    CPoint pt,
    CSize size,
    DRAWSTATEPROC lpDrawProc,
    LPARAM lData,
    UINT nFlags,
    CBrush* pBrush = NULL);

Parameters

pt
Anger platsen för bilden.

size
Anger bildens storlek.

hBitmap
Ett handtag till en bitmapp.

nFlags
Flaggor som anger bildtyp och tillstånd. Se DrawState i Windows SDK för möjliga nFlags-typer och tillstånd.

hBrush
Ett handtag till en borste.

pBitmap
En pekare till ett CBitmap objekt.

pBrush
En pekare till ett CBrush objekt.

hIcon
Ett handtag till en ikon.

lpszText
En pekare till text.

bPrefixText
Text som kan innehålla en accelerator mnemonic. Parametern lData anger strängens adress och parametern nTextLen anger längden. Om nTextLen är 0 antas strängen vara null-avslutad.

nTextLen
Längden på textsträngen som pekas på av lpszText. Om nTextLen är 0 antas strängen vara null-avslutad.

lpDrawProc
En pekare till en återanropsfunktion som används för att återge en bild. Den här parametern krävs om bildtypen i nFlags är DST_COMPLEX. Det är valfritt och kan vara NULL om bildtypen är DST_TEXT. För alla andra avbildningstyper ignoreras den här parametern. Mer information om återanropsfunktionen DrawStateProc finns i funktionen i Windows SDK.

lData
Anger information om bilden. Innebörden av den här parametern beror på bildtypen.

Return Value

Nonzero om det lyckas; annars 0.

CDC::DrawText

Anropa den här medlemsfunktionen för att formatera text i den angivna rektangeln. Om du vill ange fler formateringsalternativ använder du CDC::DrawTextEx.

virtual int DrawText(
    LPCTSTR lpszString,
    int nCount,
    LPRECT lpRect,
    UINT nFormat);

int DrawText(
    const CString& str,
    LPRECT lpRect,
    UINT nFormat);

Parameters

lpszString
Pekar på strängen som ska ritas. Om nCount är -1 måste strängen vara null-avslutad.

nCount
Anger antalet tecken i strängen. Om nCount är -1 antas det lpszString vara en lång pekare till en null-avslutad sträng och DrawText beräknar teckenantalet automatiskt.

lpRect
Pekar på en struktur eller CRect ett RECT objekt som innehåller rektangeln (i logiska koordinater) där texten ska formateras.

str
Ett CString objekt som innehåller de angivna tecken som ska ritas.

nFormat
Anger metoden för att formatera texten. Det kan vara valfri kombination av de värden som beskrivs för parametern uFormat i DrawText Windows SDK. (kombinera med bitvis ELLER-operatorn):

Note

Vissa uFormat flaggkombinationer kan göra att den angivna strängen ändras. Om du använder DT_MODIFYSTRING med antingen DT_END_ELLIPSIS eller DT_PATH_ELLIPSIS kan strängen ändras, vilket gör att en försäkran i åsidosättningen CString används. Värdena DT_CALCRECT, DT_EXTERNALLEADING, DT_INTERNAL, DT_NOCLIPoch DT_NOPREFIX kan inte användas med värdet DT_TABSTOP .

Return Value

Textens höjd om funktionen lyckas.

Remarks

Den formaterar text genom att expandera flikar till lämpliga blanksteg, justera text till vänster, höger eller mitten av den angivna rektangeln och dela upp text i linjer som passar inom den angivna rektangeln. Formateringstypen anges av nFormat.

Den här medlemsfunktionen använder enhetskontextens markerade teckensnitt, textfärg och bakgrundsfärg för att rita texten. DT_NOCLIP Om inte formatet används klipper DrawText du texten så att texten inte visas utanför den angivna rektangeln. All formatering antas ha flera rader om inte DT_SINGLELINE formatet anges.

Om det markerade teckensnittet är för stort för den angivna rektangeln DrawText försöker medlemsfunktionen inte ersätta ett mindre teckensnitt.

DT_CALCRECT Om flaggan anges uppdateras den rektangel som anges av lpRect för att återspegla den bredd och höjd som krävs för att rita texten.

Om textjusteringsflaggan TA_UPDATECP har angetts (se CDC::SetTextAlign), DrawText visas text som börjar vid den aktuella positionen i stället för till vänster om den angivna rektangeln. DrawText kommer inte att radbryt text när TA_UPDATECP flaggan har angetts (det vill sägs DT_WORDBREAK att flaggan inte har någon effekt).

Textfärgen kan anges av CDC::SetTextColor.

CDC::DrawTextEx

Formaterar text i den angivna rektangeln.

virtual int DrawTextEx(
    LPTSTR lpszString,
    int nCount,
    LPRECT lpRect,
    UINT nFormat,
    LPDRAWTEXTPARAMS lpDTParams);

int DrawTextEx(
    const CString& str,
    LPRECT lpRect,
    UINT nFormat,
    LPDRAWTEXTPARAMS lpDTParams);

Parameters

lpszString
Pekar på strängen som ska ritas. Om nCount är -1 måste strängen vara null avslutad.

nCount
Anger antalet tecken i strängen. Om nCount är -1 antas det lpszString vara en lång pekare till en null-avslutad sträng och DrawText beräknar teckenantalet automatiskt.

lpRect
Pekar på en struktur eller CRect ett RECT objekt som innehåller rektangeln (i logiska koordinater) där texten ska formateras.

str
Ett CString objekt som innehåller de angivna tecken som ska ritas.

nFormat
Anger metoden för att formatera texten. Det kan vara valfri kombination av de värden som beskrivs för parametern uFormat i DrawText Windows SDK. (Kombinera med bitvis OR-operatorn ):

Note

Vissa uFormat flaggkombinationer kan göra att den angivna strängen ändras. Om du använder DT_MODIFYSTRING med antingen DT_END_ELLIPSIS eller DT_PATH_ELLIPSIS kan strängen ändras, vilket gör att en försäkran i åsidosättningen CString används. Värdena DT_CALCRECT, DT_EXTERNALLEADING, DT_INTERNAL, DT_NOCLIPoch DT_NOPREFIX kan inte användas med värdet DT_TABSTOP .

lpDTParams
Pekare till en DRAWTEXTPARAMS struktur som anger fler formateringsalternativ. Den här parametern kan vara NULL.

Remarks

Den formaterar text genom att expandera flikar till lämpliga blanksteg, justera text till vänster, höger eller mitten av den angivna rektangeln och dela upp text i linjer som passar inom den angivna rektangeln. Formateringstypen anges av nFormat och lpDTParams. Mer information CDC::DrawText finns i och DrawTextEx i Windows SDK.

Textfärgen kan anges av CDC::SetTextColor.

CDC::Ellipse

Ritar en ellips.

BOOL Ellipse(
    int x1,
    int y1,
    int x2,
    int y2);

BOOL Ellipse(LPCRECT lpRect);

Parameters

x1
Anger den logiska x-koordinaten i det övre vänstra hörnet i ellipsens rektangel för avgränsning.

y1
Anger den logiska y-koordinaten i det övre vänstra hörnet i ellipsens rektangel för avgränsning.

x2
Anger den logiska x-koordinaten i det nedre högra hörnet i ellipsens rektangel för avgränsning.

y2
Anger den logiska y-koordinaten i det nedre högra hörnet i ellipsens rektangel för avgränsning.

lpRect
Anger ellipsens rektangel för avgränsning. Du kan också skicka ett CRect objekt för den här parametern.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Mitten av ellipsen är mitten av den avgränsningsrektangel som anges av x1, y1, x2och y2eller lpRect. Ellipsen ritas med den aktuella pennan, och dess inre är fylld med den aktuella borsten.

Figuren som ritas av den här funktionen sträcker sig upp till, men inkluderar inte, koordinaterna till höger och längst ned. Det innebär att figurens höjd är y2 - y1 och att bildens bredd är .x2 - x1

Om antingen bredden eller höjden på avgränsningsrektangeln är 0 ritas ingen ellips.

CDC::EndDoc

Avslutar ett utskriftsjobb som startats av ett anrop till StartDoc medlemsfunktionen.

int EndDoc();

Return Value

Större än eller lika med 0 om funktionen lyckas eller ett negativt värde om ett fel uppstod.

Remarks

Den här medlemsfunktionen ersätter skrivarutrymningen ENDDOC och bör anropas omedelbart efter att utskriftsjobbet har slutförts.

Om ett program stöter på ett utskriftsfel eller en avbruten utskriftsåtgärd får det inte försöka avsluta åtgärden med hjälp av antingen EndDoc eller AbortDoc. GDI avslutar automatiskt åtgärden innan felvärdet returneras.

Den här funktionen ska inte användas i metafiler.

Example

Se exemplet för CDC::StartDoc.

CDC::EndPage

Informerar enheten om att programmet har skrivits klart till en sida.

int EndPage();

Return Value

Större än eller lika med 0 om funktionen lyckas eller ett negativt värde om ett fel uppstod.

Remarks

Den här medlemsfunktionen används vanligtvis för att dirigera enhetsdrivrutinen att gå vidare till en ny sida.

Den här medlemsfunktionen ersätter skrivarens NEWFRAME escape-funktion. Till skillnad från NEWFRAMEanropas den här funktionen alltid när du har skrivit ut en sida.

Example

Se exemplet för CDC::StartDoc.

CDC::EndPath

Stänger en sökvägsparentes och väljer den sökväg som definieras av hakparentesen i enhetskontexten.

BOOL EndPath();

Return Value

Nonzero om funktionen lyckas; annars 0.

Example

Se exemplet för CDC::BeginPath.

CDC::EnumObjects

Räknar upp pennor och penslar som är tillgängliga i en enhetskontext.

int EnumObjects(
    int nObjectType,
    int (CALLBACK* lpfn)(
    LPVOID,
    LPARAM),
    LPARAM lpData);

Parameters

nObjectType
Anger objekttypen. Den kan ha värdena OBJ_BRUSH eller OBJ_PEN.

lpfn
Är procedure-instance-adressen för den programbaserade återanropsfunktionen. Se avsnittet "Kommentarer" nedan.

lpData
Pekar på data som tillhandahålls av programmet. Data skickas till återanropsfunktionen tillsammans med objektinformationen.

Return Value

Anger det sista värdet som returneras av återanropsfunktionen. Dess innebörd är användardefinierad.

Remarks

För varje objekt av en viss typ anropas återanropsfunktionen som du skickar med informationen för objektet. Systemet anropar återanropsfunktionen tills det inte finns fler objekt eller återanropsfunktionen returnerar 0.

Med nya funktioner i Microsoft Visual C++ kan du använda en vanlig funktion när funktionen skickas till EnumObjects. Adressen som skickas till EnumObjects är en pekare till en funktion som exporteras med EXPORT och med Pascal-anropskonventionen. I program i skyddsläge behöver du inte skapa den här funktionen med Windows-funktionen MakeProcInstance eller frigöra funktionen efter användning med FreeProcInstance Windows-funktionen.

Du behöver inte heller exportera funktionsnamnet i en EXPORTS -instruktion i programmets moduldefinitionsfil. Du kan i stället använda funktionsmodifieraren EXPORT , som i

INT CALLBACK EXPORT AFunction (LPSTR, LPSTR);

för att få kompilatorn att generera rätt exportpost för export med namn utan alias. Detta fungerar för de flesta behov. I vissa specialfall, till exempel när du exporterar en funktion genom att ordningstal eller alias för exporten, måste du fortfarande använda en EXPORTS -instruktion i en moduldefinitionsfil.

För att kompilera Microsoft Foundation-program använder du normalt kompilatoralternativen /GA och /GEs . Kompilatoralternativet /Gw används inte med Microsoft Foundation-klasserna. (Om du använder Windows-funktionen MakeProcInstancemåste du uttryckligen omvandla den returnerade funktionspekaren från FARPROC till den typ som behövs i det här API:et.) Gränssnitten för återanropsregistrering är nu typsäkra (du måste skicka in en funktionspekare som pekar på rätt typ av funktion för den specifika motringningen).

Dessutom måste alla återanropsfunktioner fånga Microsoft Foundation-undantag innan de återgår till Windows, eftersom undantag inte kan genereras över motringningsgränser. Mer information om undantag finns i artikeln Undantag.

Example

// print some info about a pen we're ready to enumerate
BOOL CALLBACK EnumObjectHandler(LPVOID lpLogObject, LPARAM /* lpData */)
{
   LOGPEN *pPen = (LOGPEN *)lpLogObject;

   switch (pPen->lopnStyle)
   {
   case PS_SOLID:
      TRACE0("PS_SOLID:      ");
      break;
   case PS_DASH:
      TRACE0("PS_DASH:       ");
      break;
   case PS_DOT:
      TRACE0("PS_DOT:        ");
      break;
   case PS_DASHDOT:
      TRACE0("PS_DASHDOT:    ");
      break;
   case PS_DASHDOTDOT:
      TRACE0("PS_DASHDOTDOT: ");
      break;
   case PS_NULL:
      TRACE0("PS_NULL:       ");
      break;
   case PS_INSIDEFRAME:
      TRACE0("PS_INSIDEFRAME:");
      break;
   default:
      TRACE0("unk style:");
   }

   TRACE2("Color: 0x%8.8X, Width: %d\n", pPen->lopnColor, pPen->lopnWidth);
   return TRUE;
}

// get the default printer and enumerate the pens it has
void CDCView::OnEnumPens()
{
   CPrintDialog dlg(FALSE);
   dlg.GetDefaults();
   HDC hdc = dlg.GetPrinterDC();

   if (hdc != NULL)
   {
      CDC dc;
      dc.Attach(hdc);
      VERIFY(dc.EnumObjects(OBJ_PEN, EnumObjectHandler, 0));
   }
}

CDC::Escape

Den här medlemsfunktionen är praktiskt taget föråldrad för Win32-programmering.

virtual int Escape(
    int nEscape,
    int nCount,
    LPCSTR lpszInData,
    LPVOID lpOutData);

int Escape(
    int nEscape,
    int nInputSize,
    LPCSTR lpszInputData,
    int nOutputSize,
    LPSTR lpszOutputData);

Parameters

nEscape
Anger den escape-funktion som ska utföras.

En fullständig lista över escape-funktioner Escape finns i Windows SDK.

nCount
Anger antalet byte med data som pekas på av lpszInData.

lpszInData
Pekar på den indatastruktur som krävs för den här flykten.

lpOutData
Pekar på den struktur som ska ta emot utdata från den här flykten. Parametern lpOutData är NULL om inga data returneras.

nInputSize
Anger antalet byte med data som parametern pekar på lpszInputData .

lpszInputData
Pekar på den indatastruktur som krävs för den angivna escape-åtgärden.

nOutputSize
Anger antalet byte med data som parametern pekar på lpszOutputData .

lpszOutputData
Pekar på den struktur som tar emot utdata från den här flykten. Den här parametern ska vara NULL om inga data returneras.

Return Value

Ett positivt värde returneras om funktionen lyckas, förutom QUERYESCSUPPORT escape-funktionen, som endast söker efter implementering. Noll returneras om escape inte implementeras. Ett negativt värde returneras om ett fel uppstod. Följande är vanliga felvärden:

  • SP_ERROR Allmänt fel.

  • SP_OUTOFDISK Det finns för närvarande inte tillräckligt med diskutrymme för att spola, och inget mer utrymme blir tillgängligt.

  • SP_OUTOFMEMORY Det finns inte tillräckligt med minne för att spola.

  • SP_USERABORT Användaren avslutade jobbet via Utskriftshanteraren.

Remarks

Av den ursprungliga skrivaren rymningar stöds endast QUERYESCSUPPORT för Win32-program. Alla andra skrivare är föråldrade och stöds endast för kompatibilitet med 16-bitarsprogram.

För Win32-programmering CDC tillhandahåller nu sex medlemsfunktioner som ersätter motsvarande skrivare:

Dessutom CDC::GetDeviceCaps har stöd för Win32-index som ersätter andra skrivare. Mer GetDeviceCaps information finns i Windows SDK.

Med den här medlemsfunktionen kan program komma åt faciliteter för en viss enhet som inte är direkt tillgängliga via GDI.

Använd den första versionen om programmet använder fördefinierade escape-värden. Använd den andra versionen om ditt program definierar privata escape-värden. Mer ExtEscape information om den andra versionen finns i Windows SDK.

CDC::ExcludeClipRect

Skapar en ny urklippsregion som består av den befintliga urklippsregionen minus den angivna rektangeln.

int ExcludeClipRect(
    int x1,
    int y1,
    int x2,
    int y2);

int ExcludeClipRect(LPCRECT lpRect);

Parameters

x1
Anger den logiska x-koordinaten i det övre vänstra hörnet i rektangeln.

y1
Anger den logiska y-koordinaten i det övre vänstra hörnet i rektangeln.

x2
Anger den logiska x-koordinaten i det nedre högra hörnet i rektangeln.

y2
Anger den logiska y-koordinaten i det nedre högra hörnet i rektangeln.

lpRect
Anger rektangeln. Kan också vara ett CRect objekt.

Return Value

Anger den nya urklippsregionens typ. Det kan vara något av följande värden:

  • COMPLEXREGION Regionen har överlappande kantlinjer.

  • ERROR Ingen region skapades.

  • NULLREGION Regionen är tom.

  • SIMPLEREGION Regionen har inga överlappande kantlinjer.

Remarks

Rektangelns bredd, som anges av absolutvärdet x2 - x1, får inte överstiga 32 767 enheter. Den här gränsen gäller även för rektangelns höjd.

CDC::ExcludeUpdateRgn

Förhindrar ritning inom ogiltiga områden i ett fönster genom att undanta en uppdaterad region i fönstret från den urklippsregion som är associerad med CDC objektet.

int ExcludeUpdateRgn(CWnd* pWnd);

Parameters

pWnd
Pekar på det fönsterobjekt vars fönster uppdateras.

Return Value

Typen av exkluderad region. Det kan vara något av följande värden:

  • COMPLEXREGION Regionen har överlappande kantlinjer.

  • ERROR Ingen region skapades.

  • NULLREGION Regionen är tom.

  • SIMPLEREGION Regionen har inga överlappande kantlinjer.

CDC::ExtFloodFill

Fyller ett område på visningsytan med den aktuella penseln.

BOOL ExtFloodFill(
    int x,
    int y,
    COLORREF crColor,
    UINT nFillType);

Parameters

x
Anger den logiska x-koordinaten för den punkt där fyllningen börjar.

y
Anger den logiska y-koordinaten för den punkt där fyllningen börjar.

crColor
Anger färgen på gränsen eller det område som ska fyllas i. Tolkningen av crColor beror på värdet för nFillType.

nFillType
Anger vilken typ av översvämningsfyllning som ska utföras. Det måste vara något av följande värden:

  • FLOODFILLBORDER Fyllningsområdet begränsas av den färg som anges av crColor. Det här formatet är identiskt med fyllningen som utförs av FloodFill.

  • FLOODFILLSURFACE Fyllningsområdet definieras av den färg som anges av crColor. Fyllningen fortsätter utåt i alla riktningar så länge färgen påträffas. Det här formatet är användbart för att fylla områden med flerfärgade gränser.

Return Value

Nonzero om funktionen lyckas; annars 0 om fyllningen inte kunde slutföras, om den angivna punkten har gränsfärgen angiven av crColor (om FLOODFILLBORDER den begärdes), om den angivna punkten inte har den färg som angetts av crColor (om FLOODFILLSURFACE den begärdes) eller om punkten ligger utanför urklippsregionen.

Remarks

Den här medlemsfunktionen ger större flexibilitet än FloodFill eftersom du kan ange en fyllningstyp i nFillType.

Om nFillType är inställt på FLOODFILLBORDERantas området vara helt avgränsat av den färg som anges av crColor. Funktionen börjar vid den punkt som anges av x och y fyller i alla riktningar till färggränsen.

Om nFillType är inställt FLOODFILLSURFACEpå börjar funktionen vid den punkt som anges av x och y fortsätter i alla riktningar och fyller alla intilliggande områden som innehåller den färg som anges av crColor.

Endast minnesenhetskontexter och enheter som stöder raster-display-teknik stöder ExtFloodFill. Mer information finns i GetDeviceCaps medlemsfunktionen.

CDC::ExtTextOut

Anropa den här medlemsfunktionen för att skriva en teckensträng i en rektangulär region med hjälp av det markerade teckensnittet.

virtual BOOL ExtTextOut(
    int x,
    int y,
    UINT nOptions,
    LPCRECT lpRect,
    LPCTSTR lpszString,
    UINT nCount,
    LPINT lpDxWidths);

BOOL ExtTextOut(
    int x,
    int y,
    UINT nOptions,
    LPCRECT lpRect,
    const CString& str,
    LPINT lpDxWidths);

Parameters

x
Anger den logiska x-koordinaten för teckencellen för det första tecknet i den angivna strängen.

y
Anger den logiska y-koordinaten överst i teckencellen för det första tecknet i den angivna strängen.

nOptions
Anger rektangeltypen. Den här parametern kan vara ett, båda eller inget av följande värden:

  • ETO_CLIPPED Anger att texten klipps till rektangeln.

  • ETO_OPAQUE Anger att den aktuella bakgrundsfärgen fyller rektangeln. (Du kan ställa in och fråga den aktuella bakgrundsfärgen med medlemsfunktionerna SetBkColor och GetBkColor .)

lpRect
Pekar på en RECT struktur som bestämmer rektangelns dimensioner. Den här parametern kan vara NULL. Du kan också skicka ett CRect objekt för den här parametern.

lpszString
Pekar på den angivna teckensträngen som ska ritas. Du kan också skicka ett CString objekt för den här parametern.

nCount
Anger antalet tecken i strängen.

lpDxWidths
Pekar på en matris med värden som anger avståndet mellan ursprunget för intilliggande teckenceller. Till exempel lpDxWidthsseparerar logiska enheter [ i] ursprunget för teckencellen i och teckencellen i + 1. Om lpDxWidths är NULLanvänds ExtTextOut standardavståndet mellan tecken.

str
Ett CString objekt som innehåller de angivna tecken som ska ritas.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Den rektangulära regionen kan vara ogenomskinlig (fylld med den aktuella bakgrundsfärgen) och det kan vara en urklippsregion.

Om nOptions är 0 och lpRect är NULLskriver funktionen text till enhetskontexten utan att använda en rektangulär region. Som standard används eller uppdateras inte den aktuella positionen av funktionen. Om ett program behöver uppdatera den aktuella positionen när det anropar ExtTextOutkan programmet anropa CDC medlemsfunktionen SetTextAlign med nFlags inställt på TA_UPDATECP. När den här flaggan har angetts x ignorerar Och y vid efterföljande anrop till ExtTextOut och använder den aktuella positionen i stället. När ett program använder TA_UPDATECP för att uppdatera den aktuella positionen anger ExtTextOut du den aktuella positionen antingen till slutet av föregående textrad eller till den position som anges av det sista elementet i matrisen som pekas på av lpDxWidths, beroende på vilket som är större.

CDC::FillPath

Stänger alla öppna figurer i den aktuella sökvägen och fyller sökvägens inre med hjälp av det aktuella pensel- och polygonfyllningsläget.

BOOL FillPath();

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

När dess inre har fyllts tas sökvägen bort från enhetskontexten.

CDC::FillRect

Anropa den här medlemsfunktionen för att fylla en viss rektangel med den angivna penseln.

void FillRect(
    LPCRECT lpRect,
    CBrush* pBrush);

Parameters

lpRect
Pekar på en RECT struktur som innehåller de logiska koordinaterna för den rektangel som ska fyllas i. Du kan också skicka ett CRect objekt för den här parametern.

pBrush
Identifierar penseln som används för att fylla rektangeln.

Remarks

Funktionen fyller den fullständiga rektangeln, inklusive de vänstra och övre kantlinjerna, men den fyller inte de högra och nedre kantlinjerna.

Penseln måste antingen skapas med medlemsfunktionerna CBrushCreateHatchBrush, CreatePatternBrushoch eller CreateSolidBrushhämtas av GetStockObject Windows-funktionen.

När du fyller den angivna rektangeln FillRect innehåller den inte rektangelns högra och nedre sidor. GDI fyller en rektangel upp till, men inkluderar inte, den högra kolumnen och den nedre raden, oavsett aktuellt mappningsläge. FillRect jämför värdena för top, bottom, leftoch right medlemmar i den angivna rektangeln. Om bottom är mindre än eller lika med top, eller om right är mindre än eller lika med left, ritas inte rektangeln.

FillRect liknar CDC::FillSolidRect; tar dock FillRect en pensel och kan därför användas för att fylla en rektangel med en fast färg, en gitterfärg, kläckta penslar eller ett mönster. FillSolidRect använder endast solida färger (anges med en COLORREF parameter). FillRect är vanligtvis långsammare än FillSolidRect.

CDC::FillRgn

Fyller den region som anges av pRgn med penseln som anges av pBrush.

BOOL FillRgn(
    CRgn* pRgn,
    CBrush* pBrush);

Parameters

pRgn
En pekare till den region som ska fyllas i. Koordinaterna för den angivna regionen anges i logiska enheter.

pBrush
Identifierar penseln som ska användas för att fylla regionen.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Penseln måste antingen skapas med medlemsfunktionerna CBrushCreateHatchBrush, CreatePatternBrush, CreateSolidBrusheller hämtas av GetStockObject.

Example

Se exemplet för CRgn::CreateRoundRectRgn.

CDC::FillSolidRect

Anropa den här medlemsfunktionen för att fylla den angivna rektangeln med den angivna solida färgen.

void FillSolidRect(
    LPCRECT lpRect,
    COLORREF clr);

void FillSolidRect(
    int x,
    int y,
    int cx,
    int cy,
    COLORREF clr);

Parameters

lpRect
Anger rektangeln för avgränsning (i logiska enheter). Du kan skicka antingen en pekare till en RECT datastruktur eller ett CRect objekt för den här parametern.

clr Anger vilken färg som ska användas för att fylla rektangeln.

x
Anger den logiska x-koordinaten i det övre vänstra hörnet i rektangeln.

y
Anger den logiska y-koordinaten i det övre vänstra hörnet i målrektangeln.

cx
Anger rektangelns bredd.

cy
Anger rektangelns höjd.

Remarks

FillSolidRect är mycket lik CDC::FillRect; använder dock FillSolidRect endast solida färger (anges av parametern COLORREF ), medan FillRect tar en pensel och därför kan användas för att fylla en rektangel med en solid färg, en gitterfärg, kläckta penslar eller ett mönster. FillSolidRect är vanligtvis snabbare än FillRect.

Note

När du anropar FillSolidRectanges bakgrundsfärgen, som tidigare angavs med hjälp av SetBkColor, till den färg som anges av clr.

CDC::FlattenPath

Omvandlar alla kurvor i sökvägen som valts till den aktuella enhetskontexten och omvandlar varje kurva till en sekvens med linjer.

BOOL FlattenPath();

Return Value

Nonzero om funktionen lyckas; annars 0.

CDC::FloodFill

Fyller ett område på visningsytan med den aktuella penseln.

BOOL FloodFill(
    int x,
    int y,
    COLORREF crColor);

Parameters

x
Anger den logiska x-koordinaten för den punkt där fyllningen börjar.

y
Anger den logiska y-koordinaten för den punkt där fyllningen börjar.

crColor
Anger gränsens färg.

Return Value

Nonzero om funktionen lyckas; annars returneras 0 om fyllningen inte kunde slutföras, den angivna punkten har gränsfärgen angiven av crColor, eller så ligger punkten utanför urklippsområdet.

Remarks

Området antas vara avgränsat enligt angivet av crColor. Funktionen FloodFill börjar vid den punkt som anges av x och y fortsätter i alla riktningar till färggränsen.

Endast minnesenhetskontexter och enheter som stöder raster-display-teknik stöder FloodFill medlemsfunktionen. Information om RC_BITBLT funktioner finns i GetDeviceCaps medlemsfunktionen.

Funktionen ExtFloodFill ger liknande funktioner men större flexibilitet.

CDC::FrameRect

Ritar en kantlinje runt den rektangel som anges av lpRect.

void FrameRect(
    LPCRECT lpRect,
    CBrush* pBrush);

Parameters

lpRect
Pekar på en struktur eller CRect ett RECT objekt som innehåller de logiska koordinaterna i rektangelns övre vänstra och nedre högra hörn. Du kan också skicka ett CRect objekt för den här parametern.

pBrush
Identifierar penseln som ska användas för att rama in rektangeln.

Remarks

Funktionen använder den angivna penseln för att rita kantlinjen. Kantlinjens bredd och höjd är alltid 1 logisk enhet.

Om rektangelns bottom koordinat är mindre än eller lika med top, eller om right den är mindre än eller lika med left, ritas inte rektangeln.

Kantlinjen som ritas av FrameRect är i samma position som en kantlinje som ritas av Rectangle medlemsfunktionen med samma koordinater (om Rectangle använder en penna som är 1 logisk enhet bred). Det inre av rektangeln fylls inte av FrameRect.

CDC::FrameRgn

Ritar en kantlinje runt den region som anges med hjälp av pRgn penseln som anges av pBrush.

BOOL FrameRgn(
    CRgn* pRgn,
    CBrush* pBrush,
    int nWidth,
    int nHeight);

Parameters

pRgn
Pekar på det CRgn objekt som identifierar den region som ska omges av en kantlinje. Koordinaterna för den angivna regionen anges i logiska enheter.

pBrush
Pekar på objektet CBrush som identifierar penseln som ska användas för att rita kantlinjen.

nWidth
Anger bredden på kantlinjen i lodräta penseldrag i enhetsenheter.

nHeight
Anger höjden på kantlinjen i vågräta penseldrag i enhetsenheter.

Return Value

Nonzero om funktionen lyckas; annars 0.

Example

Se exemplet för CRgn::CombineRgn.

CDC::FromHandle

Returnerar en pekare till ett CDC objekt när ett handtag ges till en enhetskontext.

static CDC* PASCAL FromHandle(HDC hDC);

Parameters

hDC
Innehåller ett handtag till en Windows-enhetskontext.

Return Value

Pekaren kan vara tillfällig och bör inte lagras utöver omedelbar användning.

Remarks

Om ett CDC objekt inte är kopplat till handtaget skapas och kopplas ett tillfälligt CDC objekt.

Example

Se exemplet för CPrintDialog::GetPrinterDC.

CDC::GetArcDirection

Returnerar den aktuella arc-riktningen för enhetskontexten.

int GetArcDirection() const;

Return Value

Anger den aktuella bågens riktning om den lyckas. Följande är giltiga returvärden:

  • AD_COUNTERCLOCKWISE Bågar och rektanglar ritade motsols.

  • AD_CLOCKWISE Arcs rektanglar ritade medsols.

Om ett fel uppstår är returvärdet noll.

Remarks

Funktionerna arc och rektangel använder bågens riktning.

CDC::GetAspectRatioFilter

Hämtar inställningen för det aktuella filtret för proportioner.

CSize GetAspectRatioFilter() const;

Return Value

Ett CSize objekt som representerar det proportioner som används av det aktuella proportionsfiltret.

Remarks

Proportionen är förhållandet som bildas av en enhets pixelbredd och höjd. Information om en enhets proportioner används för att skapa, välja och visa teckensnitt. Windows innehåller ett särskilt filter, filtret för proportioner, för att välja teckensnitt som är utformade för ett visst proportioner från alla tillgängliga teckensnitt. Filtret använder det proportioner som anges av SetMapperFlags medlemsfunktionen.

CDC::GetBkColor

Returnerar den aktuella bakgrundsfärgen.

COLORREF GetBkColor() const;

Return Value

Ett RGB-färgvärde.

Remarks

Om bakgrundsläget är OPAQUEanvänder systemet bakgrundsfärgen för att fylla luckorna i formaterade linjer, luckorna mellan kläckta linjer i penslar och bakgrunden i teckenceller. Systemet använder också bakgrundsfärgen när bitmappar konverteras mellan färg- och monokroma enhetskontexter.

CDC::GetBkMode

Returnerar bakgrundsläget.

int GetBkMode() const;

Return Value

Det aktuella bakgrundsläget, som kan vara OPAQUE eller TRANSPARENT.

Remarks

Bakgrundsläget definierar om systemet tar bort befintliga bakgrundsfärger på ritytan innan du ritar text, kläckta penslar eller pennformat som inte är en heldragen linje.

CDC::GetBoundsRect

Returnerar den aktuella ackumulerade avgränsningsrektangeln för den angivna enhetskontexten.

UINT GetBoundsRect(
    LPRECT lpRectBounds,
    UINT flags);

Parameters

lpRectBounds
Pekar på en buffert som tar emot den aktuella rektangeln för avgränsning. Rektangeln returneras i logiska koordinater.

flags
Anger om avgränsningsrektangeln ska rensas när den har returnerats. Den här parametern ska vara noll eller inställd på följande värde:

  • DCB_RESET Tvingar avgränsningsrektangeln att rensas när den har returnerats.

Return Value

Anger det aktuella tillståndet för avgränsningsrektangeln om funktionen lyckas. Det kan vara en kombination av följande värden:

  • DCB_ACCUMULATE Rektangelansamling för avgränsning sker.

  • DCB_RESET Rektangel för avgränsning är tom.

  • DCB_SET Rektangel för avgränsning är inte tom.

  • DCB_ENABLE Avgränsningsansamlingen är på.

  • DCB_DISABLE Avgränsningsansamlingen är avstängd.

CDC::GetBrushOrg

Hämtar ursprunget (i enhetsenheter) för penseln som för närvarande har valts för enhetskontexten.

CPoint GetBrushOrg() const;

Return Value

Penselns aktuella ursprung (i enhetsenheter) som ett CPoint objekt.

Remarks

Den ursprungliga penselns ursprung är (0,0) i klientområdet. Returvärdet anger den här punkten i enhetsenheter i förhållande till skrivbordsfönstrets ursprung.

CDC::GetCharacterPlacement

Hämtar olika typer av information på en teckensträng.

DWORD GetCharacterPlacement(
    LPCTSTR lpString,
    int nCount,
    int nMaxExtent,
    LPGCP_RESULTS lpResults,
    DWORD dwFlags) const;

DWORD GetCharacterPlacement(
    CString& str,
    int nMaxExtent,
    LPGCP_RESULTS lpResults,
    DWORD dwFlags) const;

Parameters

lpString
En pekare till teckensträngen som ska bearbetas.

nCount
Anger längden på strängen. För ANSI-versionen är det ett BYTE antal och för Unicode-funktionen är det ett WORD antal. Mer information finns i GetCharacterPlacement.

nMaxExtent
Anger den maximala utsträckning (i logiska enheter) som strängen bearbetas till. Tecken som, om de bearbetas, skulle överskrida den här omfattningen ignoreras. Beräkningar för alla obligatoriska ordnings- eller glyphmatriser gäller endast för de inkluderade tecknen. Den här parametern används endast om GCP_MAXEXTENT värdet anges i parametern dwFlags . När funktionen bearbetar indatasträngen läggs varje tecken och dess omfattning till i utdata, omfattning och andra matriser endast om den totala omfattningen ännu inte har överskridit maxvärdet. När gränsen har nåtts stoppas bearbetningen.

lpResults
Pekare till en GCP_Results struktur som tar emot resultatet av funktionen.

dwFlags
Anger hur strängen ska bearbetas till de matriser som krävs. Den här parametern kan vara ett eller flera av de värden som anges i dwFlags avsnittet i ämnet GetCharacterPlacement .

str
En pekare till ett CString objekt som ska bearbetas.

Return Value

Om funktionen lyckas är returvärdet strängens bredd och höjd i logiska enheter.

Om funktionen misslyckas är returvärdet noll.

Remarks

Den här medlemsfunktionen emulerar funktionens funktioner GetCharacterPlacementenligt beskrivningen i Windows SDK.

CDC::GetCharABCWidths

Hämtar bredden på efterföljande tecken i ett angivet intervall från det aktuella TrueType-teckensnittet.

BOOL GetCharABCWidths(
    UINT nFirstChar,
    UINT nLastChar,
    LPABC lpabc) const;

BOOL GetCharABCWidths(
    UINT nFirstChar,
    UINT nLastChar,
    LPABCFLOAT lpABCF) const;

Parameters

nFirstChar
Anger det första tecknet i intervallet med tecken från det aktuella teckensnittet som teckenbredder returneras för.

nLastChar
Anger det sista tecknet i intervallet med tecken från det aktuella teckensnittet som teckenbredder returneras för.

lpabc
Pekar på en matris med ABC strukturer som tar emot teckenbredderna när funktionen returnerar. Den här matrisen måste innehålla minst lika många ABC strukturer som det finns tecken i intervallet som anges av parametrarna nFirstChar och nLastChar .

lpABCF
Pekar på en programbuffert med en matris ABCFLOAT med strukturer för att ta emot teckenbredderna när funktionen returnerar. De bredder som returneras av den här funktionen är i IEEE-flyttalsformat.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Bredderna returneras i logiska enheter. Den här funktionen lyckas endast med TrueType-teckensnitt.

TrueType-rastreringen ger teckenavståndet "ABC" när en viss punktstorlek har valts. "A"-avstånd är det avstånd som läggs till i den aktuella positionen innan du placerar glyfen. "B"-avstånd är bredden på den svarta delen av glyfen. "C"-avstånd läggs till i den aktuella positionen för att ta hänsyn till det tomma utrymmet till höger om glyfen. Den totala avancerade bredden anges av A + B + C.

GetCharABCWidths När medlemsfunktionen hämtar negativa "A" eller "C"-bredder för ett tecken, innehåller det tecknet underhäng eller överhäng.

Om du vill konvertera ABC-bredden till teckensnittsdesignenheter bör ett program skapa ett teckensnitt vars höjd (enligt beskrivningen lfHeight i strukturens medlemLOGFONT) är lika med det värde som lagras i medlemmen NEWTEXTMETRIC i ntmSizeEM strukturen. (Värdet för ntmSizeEM medlemmen kan hämtas genom att anropa EnumFontFamilies Windows-funktionen.)

ABC-bredden för standardtecknet används för tecken som ligger utanför intervallet för det markerade teckensnittet.

Om du vill hämta bredden på tecken i icke-TrueType-teckensnitt bör program använda GetCharWidth Windows-funktionen.

CDC::GetCharABCWidthsI

Hämtar bredden i logiska enheter för på varandra följande glyfindex i ett angivet intervall från det aktuella TrueType-teckensnittet.

BOOL GetCharABCWidthsI(
    UINT giFirst,
    UINT cgi,
    LPWORD pgi,
    LPABC lpabc) const;

Parameters

giFirst
Anger det första glyfindexet i gruppen med på varandra följande glyfindex från det aktuella teckensnittet. Den här parametern används endast om parametern pgi är NULL.

cgi
Anger antalet glyphindex.

pgi
En pekare till en matris som innehåller glyphindex. Om värdet är NULLanvänds parametern giFirst i stället. Parametern cgi anger antalet glyphindex i den här matrisen.

lpabc
Pekare till en matris med ABC strukturer som tar emot teckenbredderna. Den här matrisen måste innehålla minst lika många ABC strukturer som det finns glyfindex som anges av parametern cgi .

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Den här medlemsfunktionen emulerar funktionens funktioner GetCharABCWidthsIenligt beskrivningen i Windows SDK.

CDC::GetCharWidth

Hämtar bredden på enskilda tecken i en på varandra följande grupp med tecken från det aktuella teckensnittet med hjälp av m_hAttribDCindataenhetskontexten.

BOOL GetCharWidth(
    UINT nFirstChar,
    UINT nLastChar,
    LPINT lpBuffer) const;

BOOL GetCharWidth(
    UINT nFirstChar,
    UINT nLastChar,
    float* lpFloatBuffer) const;

Parameters

nFirstChar
Anger det första tecknet i en på varandra följande grupp med tecken i det aktuella teckensnittet.

nLastChar
Anger det sista tecknet i en på varandra följande grupp med tecken i det aktuella teckensnittet.

lpBuffer
Pekar på en buffert som tar emot breddvärdena för en på varandra följande grupp tecken i det aktuella teckensnittet.

lpFloatBuffer
Pekar på en buffert för att ta emot teckenbredderna. De returnerade bredderna är i 32-bitars IEEE-flyttalsformat. (Bredderna mäts längs teckenbaslinjen.)

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Om nFirstChar till exempel identifierar bokstaven "a" och nLastChar identifierar bokstaven "z", hämtar funktionen bredden på alla gemener.

Funktionen lagrar värdena i bufferten som pekas på av lpBuffer. Bufferten måste vara tillräckligt stor för att rymma alla bredder. Det vill säga det måste finnas minst 26 poster i exemplet.

Om ett tecken i den efterföljande gruppen med tecken inte finns i ett visst teckensnitt tilldelas det standardtecknets breddvärde.

CDC::GetCharWidthI

Hämtar bredden i logiska koordinater för på varandra följande glyphindex i ett angivet intervall från det aktuella teckensnittet.

BOOL GetCharWidthI(
    UINT giFirst,
    UINT cgi,
    LPWORD pgi,
    LPINT lpBuffer) const;

Parameters

giFirst
Anger det första glyfindexet i gruppen med på varandra följande glyfindex från det aktuella teckensnittet. Den här parametern används endast om parametern pgi är NULL.

cgi
Anger antalet glyphindex.

pgi
En pekare till en matris som innehåller glyphindex. Om värdet är NULLanvänds parametern giFirst i stället. Parametern cgi anger antalet glyphindex i den här matrisen.

lpBuffer
En pekare till en buffert som tar emot bredderna.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Den här medlemsfunktionen emulerar funktionens funktioner GetCharWidthIenligt beskrivningen i Windows SDK.

CDC::GetClipBox

Hämtar dimensionerna för den snävaste avgränsningsrektangeln runt den aktuella urklippsgränsen.

virtual int GetClipBox(LPRECT lpRect) const;

Parameters

lpRect
Pekar på den RECT struktur eller CRect det objekt som ska ta emot rektangeldimensionerna.

Return Value

Typ av urklippsregion. Det kan vara något av följande värden:

  • COMPLEXREGION Urklippsområdet har överlappande kantlinjer.

  • ERROR Enhetskontexten är inte giltig.

  • NULLREGION Urklippsregionen är tom.

  • SIMPLEREGION Urklippsregionen har inga överlappande kantlinjer.

Remarks

Dimensionerna kopieras till bufferten som pekas på av lpRect.

CDC::GetColorAdjustment

Hämtar färgjusteringsvärdena för enhetskontexten.

BOOL GetColorAdjustment(LPCOLORADJUSTMENT lpColorAdjust) const;

Parameters

lpColorAdjust
Pekar på en COLORADJUSTMENT datastruktur för att ta emot färgjusteringsvärdena.

Return Value

Nonzero om funktionen lyckas; annars 0.

CDC::GetCurrentBitmap

Returnerar en pekare till det markerade CBitmap objektet.

CBitmap* GetCurrentBitmap() const;

Return Value

Pekare till ett CBitmap objekt, om det lyckas, annars NULL.

Remarks

Den här medlemsfunktionen kan returnera temporära objekt.

CDC::GetCurrentBrush

Returnerar en pekare till det markerade CBrush objektet.

CBrush* GetCurrentBrush() const;

Return Value

Pekare till ett CBrush objekt, om det lyckas, annars NULL.

Remarks

Den här medlemsfunktionen kan returnera temporära objekt.

CDC::GetCurrentFont

Returnerar en pekare till det markerade CFont objektet.

CFont* GetCurrentFont() const;

Return Value

Pekare till ett CFont objekt, om det lyckas, annars NULL.

Remarks

Den här medlemsfunktionen kan returnera temporära objekt.

CDC::GetCurrentPalette

Returnerar en pekare till det markerade CPalette objektet.

CPalette* GetCurrentPalette() const;

Return Value

Pekare till ett CPalette objekt, om det lyckas, annars NULL.

Remarks

Den här medlemsfunktionen kan returnera temporära objekt.

CDC::GetCurrentPen

Returnerar en pekare till det markerade CPen objektet.

CPen* GetCurrentPen() const;

Return Value

Pekare till ett CPen objekt, om det lyckas, annars NULL.

Remarks

Den här medlemsfunktionen kan returnera temporära objekt.

CDC::GetCurrentPosition

Hämtar den aktuella positionen (i logiska koordinater).

CPoint GetCurrentPosition() const;

Return Value

Den aktuella positionen som ett CPoint objekt.

Remarks

Den aktuella positionen kan anges med MoveTo medlemsfunktionen.

CDC::GetDCBrushColor

Hämtar den aktuella penselfärgen.

COLORREF GetDCBrushColor() const;

Return Value

Om funktionen lyckas är COLORREF returvärdet värdet för den aktuella penselfärgen.

Om funktionen misslyckas är CLR_INVALIDreturvärdet .

Remarks

Den här medlemsfunktionen emulerar funktionens funktioner GetDCBrushColorenligt beskrivningen i Windows SDK.

CDC::GetDCPenColor

Hämtar den aktuella pennfärgen.

COLORREF GetDCPenColor() const;

Return Value

Om funktionen lyckas är COLORREF returvärdet värdet för den aktuella pennfärgen.

Om funktionen misslyckas är CLR_INVALIDreturvärdet .

Remarks

Den här medlemsfunktionen använder funktionen GetDCPenColorWin32 , enligt beskrivningen i Windows SDK.

CDC::GetDeviceCaps

Hämtar en mängd olika enhetsspecifika uppgifter om visningsenheten.

int GetDeviceCaps(int nIndex) const;

Parameters

nIndex
Anger vilken typ av information som ska returneras. En GetDeviceCaps lista med värden finns i Windows SDK.

Return Value

Värdet för den begärda funktionen om funktionen lyckas.

Example

Se exemplet för CPrintDialog::GetDefaults.

CDC::GetFontData

Hämtar teckensnittsstatistikinformation från en skalbar teckensnittsfil.

DWORD GetFontData(
    DWORD dwTable,
    DWORD dwOffset,
    LPVOID lpData,
    DWORD cbData) const;

Parameters

dwTable
Anger namnet på måtttabellen som ska returneras. Den här parametern kan vara en av de måtttabeller som dokumenteras i TrueType Font Files-specifikationen som publicerats av Microsoft Corporation. Om den här parametern är 0 hämtas informationen från början av teckensnittsfilen.

dwOffset
Anger förskjutningen från början av tabellen där information ska börja hämtas. Om den här parametern är 0 hämtas informationen från början av tabellen som anges av parametern dwTable . Om det här värdet är större än eller lika med tabellens GetFontData storlek returneras 0.

lpData
Pekar på en buffert som tar emot teckensnittsinformationen. Om det här värdet är NULLreturnerar funktionen storleken på bufferten som krävs för teckensnittsdata som anges i parametern dwTable .

cbData
Anger längden, i byte, på den information som ska hämtas. Om den här parametern är 0 GetFontData returnerar storleken på de data som anges i parametern dwTable .

Return Value

Anger antalet byte som returneras i bufferten som pekar på lpData om funktionen lyckas, annars -1.

Remarks

Informationen som ska hämtas identifieras genom att ange en förskjutning i teckensnittsfilen och längden på den information som ska returneras.

Ett program kan ibland använda GetFontData medlemsfunktionen för att spara ett TrueType-teckensnitt med ett dokument. För att göra detta avgör programmet om teckensnittet kan bäddas in och hämtar sedan hela teckensnittsfilen och anger 0 för parametrarna dwTable, dwOffsetoch cbData .

Program kan avgöra om ett teckensnitt kan bäddas in genom att kontrollera otmfsType medlemmen i OUTLINETEXTMETRIC strukturen. Om bit 1 av otmfsType har angetts tillåts inte inbäddning för teckensnittet. Om bit 1 är klar kan teckensnittet bäddas in. Om bit 2 har angetts är inbäddningen skrivskyddad.

Om ett program försöker använda den här funktionen för att hämta information för ett icke-TrueType-teckensnitt GetFontData returnerar medlemsfunktionen -1.

CDC::GetFontLanguageInfo

Returnerar information om det markerade teckensnittet för den angivna visningskontexten.

DWORD GetFontLanguageInfo() const;

Return Value

Returvärdet identifierar egenskaperna för det markerade teckensnittet. En fullständig lista över möjliga värden finns i GetFontLanguageInfo.

Remarks

Den här medlemsfunktionen emulerar funktionens funktioner GetFontLanguageInfoenligt beskrivningen i Windows SDK.

CDC::GetGlyphOutline

Hämtar dispositionskurvan eller bitmappen för ett dispositionstecken i det aktuella teckensnittet.

DWORD GetGlyphOutline(
    UINT nChar,
    UINT nFormat,
    LPGLYPHMETRICS lpgm,
    DWORD cbBuffer,
    LPVOID lpBuffer,
    const MAT2* lpmat2) const;

Parameters

nChar
Anger det tecken som informationen ska returneras för.

nFormat
Anger i vilket format funktionen ska returnera information. Det kan vara något av följande värden, eller 0:

Value Meaning
GGO_BITMAP Returnerar glyph-bitmappen. När funktionen returnerar innehåller bufferten som pekas på av lpBuffer en bit per pixel-bitmapp vars rader börjar med dubbelordsgränser.
GGO_NATIVE Returnerar kurvdatapunkterna i rastreringsverktygets interna format med hjälp av enhetsenheter. När det här värdet har angetts ignoreras alla transformeringar som anges i lpmat2 .

När värdet nFormat för är 0 fylls funktionen i en GLYPHMETRICS struktur men returnerar inte glyfdispositionsdata.

lpgm
Pekar på en GLYPHMETRICS struktur som beskriver placeringen av glyfen i teckencellen.

cbBuffer
Anger storleken på bufferten som funktionen kopierar information om dispositionstecknet till. Om det här värdet är 0 och parametern nFormat antingen är GGO_BITMAP värdena eller GGO_NATIVE returnerar funktionen buffertens storlek.

lpBuffer
Pekar på en buffert där funktionen kopierar information om dispositionstecknet. Om nFormat anger värdet GGO_NATIVE kopieras informationen i form av TTPOLYGONHEADER och TTPOLYCURVE strukturer. Om det här värdet är NULL och nFormat antingen GGO_BITMAP är värdet eller GGO_NATIVE returnerar funktionen buffertens storlek.

lpmat2
Pekar på en MAT2 struktur som innehåller en transformeringsmatris för tecknet. Den här parametern kan inte vara NULL, även när GGO_NATIVE värdet har angetts för nFormat.

Return Value

Storleken, i byte, på bufferten som krävs för den hämtade informationen om cbBuffer den är 0 eller lpBuffer är NULL. Annars är det ett positivt värde om funktionen lyckas eller -1 om det finns ett fel.

Remarks

Ett program kan rotera tecken som hämtats i bitmappsformat genom att ange en 2-by-2-transformeringsmatris i strukturen som pekas på av lpmat2.

En glyphdisposition returneras som en serie konturer. Varje kontur definieras av en TTPOLYGONHEADER struktur följt av så många TTPOLYCURVE strukturer som krävs för att beskriva den. Alla punkter returneras som POINTFX strukturer och representerar absoluta positioner, inte relativa rörelser. Utgångspunkten som pfxStart anges av medlemmen i TTPOLYGONHEADER strukturen är den punkt där konturen för en kontur börjar. De TTPOLYCURVE strukturer som följer kan vara antingen polylineposter eller spline-poster. Polyline-poster är en serie punkter; linjer som ritas mellan punkterna beskriver konturen av tecknet. Spline-poster representerar de kvadratiska kurvor som används av TrueType (d.v.s. kvadratiska b-splines).

CDC::GetGraphicsMode

Hämtar det aktuella grafikläget för den angivna enhetskontexten.

int GetGraphicsMode() const;

Return Value

Returnerar det aktuella grafikläget vid lyckat resultat. En lista över de värden som den här metoden kan returnera finns i GetGraphicsMode.

Returnerar 0 vid fel.

Om du vill få utökad felinformation anropar du GetLastError.

Remarks

Den här metoden omsluter Windows GDI-funktionen GetGraphicsMode.

CDC::GetHalftoneBrush

Anropa den här medlemsfunktionen för att hämta en halvtonsborste.

static CBrush* PASCAL GetHalftoneBrush();

Return Value

En pekare till ett CBrush objekt om det lyckas, annars NULL.

Remarks

En halvtonsborste visar bildpunkter som alternativt är förgrunds- och bakgrundsfärger för att skapa ett gittermönster. Följande diagram visar ett exempel på ett gittermönster som skapats av en halvtonsborste:

Diagram som visar hur en dithered pennstreck består.

Diagrammet visar hur bakgrundsfärgen för svart, och förgrundsfärgen gul, kombineras till ett mönster genom att växla de svarta och gula bildpunkterna med varandra för att skapa en gitterpenna.

CDC::GetKerningPairs

Hämtar tecken kerning par för teckensnittet som för närvarande är valt i den angivna enhetskontexten.

int GetKerningPairs(
    int nPairs,
    LPKERNINGPAIR lpkrnpair) const;

Parameters

nPairs
Anger antalet KERNINGPAIR strukturer som pekas på av lpkrnpair. Funktionen kopierar inte fler kerningspar än vad som anges av nPairs.

lpkrnpair
Pekar på en matris med KERNINGPAIR strukturer som tar emot kerning-paren när funktionen returnerar. Den här matrisen måste innehålla minst så många strukturer som anges av nPairs. Om den här parametern är NULLreturnerar funktionen det totala antalet kerningspar för teckensnittet.

Return Value

Anger antalet kerningspar som hämtats eller det totala antalet kerningspar i teckensnittet, om funktionen lyckas. Noll returneras om funktionen misslyckas eller om det inte finns några kerningspar för teckensnittet.

CDC::GetLayout

Anropa den här medlemsfunktionen för att fastställa layouten för text och grafik för en enhetskontext, till exempel en skrivare eller en metafil.

DWORD GetLayout() const;

Return Value

Om det lyckas flaggar layouten för den aktuella enhetskontexten. Annars, GDI_ERROR. För utökad felinformation anropar du GetLastError. En lista över layoutflaggor finns i CDC::SetLayout.

Remarks

Standardlayouten är vänster till höger.

CDC::GetMapMode

Hämtar det aktuella mappningsläget.

int GetMapMode() const;

Return Value

Mappningsläget.

Remarks

En beskrivning av mappningslägena finns i SetMapMode medlemsfunktionen.

Note

Om du anropar SetLayout för att ändra dc-layouten till höger till vänster ändrar SetLayout du automatiskt mappningsläget till MM_ISOTROPIC. Därför returnerar MM_ISOTROPICalla efterföljande anrop till GetMapMode .

CDC::GetMiterLimit

Returnerar mitergränsen för enhetskontexten.

float GetMiterLimit() const;

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Mitergränsen används vid ritning av geometriska linjer som har miterkopplingar.

CDC::GetNearestColor

Returnerar den solida färg som bäst matchar en angiven logisk färg.

COLORREF GetNearestColor(COLORREF crColor) const;

Parameters

crColor
Anger vilken färg som ska matchas.

Return Value

Ett RGB-färgvärde (rött, grönt, blått) som definierar den solida färg som är närmast det crColor värde som enheten kan representera.

Remarks

Den angivna enheten måste kunna representera den här färgen.

CDC::GetOutlineTextMetrics

Hämtar måttinformation för TrueType-teckensnitt.

UINT GetOutlineTextMetrics(
    UINT cbData,
    LPOUTLINETEXTMETRIC lpotm) const;

Parameters

lpotm
Pekar på en matris med OUTLINETEXTMETRIC strukturer. Om den här parametern är NULLreturnerar funktionen storleken på bufferten som krävs för hämtade måttdata.

cbData
Anger storleken, i byte, på bufferten som informationen returneras till.

lpotm
Pekar på en OUTLINETEXTMETRIC struktur. Om den här parametern är NULLreturnerar funktionen storleken på bufferten som krävs för den hämtade måttinformationen.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Strukturen OUTLINETEXTMETRIC innehåller det mesta av den teckensnittsstatistikinformation som tillhandahålls med TrueType-formatet, inklusive en TEXTMETRIC struktur. De sista fyra medlemmarna i OUTLINETEXTMETRIC strukturen är pekare till strängar. Program bör allokera utrymme för dessa strängar utöver det utrymme som krävs för de andra medlemmarna. Eftersom det inte finns någon systeminställd gräns för storleken på strängarna är den enklaste metoden för att allokera minne att hämta den nödvändiga storleken genom att ange NULL för lpotm i det första anropet GetOutlineTextMetrics till funktionen.

CDC::GetOutputCharWidth

Använder utdataenhetskontexten m_hDC, och hämtar bredden på enskilda tecken i en på varandra följande grupp med tecken från det aktuella teckensnittet.

BOOL GetOutputCharWidth(
    UINT nFirstChar,
    UINT nLastChar,
    LPINT lpBuffer) const;

Parameters

nFirstChar
Anger det första tecknet i en på varandra följande grupp med tecken i det aktuella teckensnittet.

nLastChar
Anger det sista tecknet i en på varandra följande grupp med tecken i det aktuella teckensnittet.

lpBuffer
Pekar på en buffert som tar emot breddvärdena för en på varandra följande grupp tecken i det aktuella teckensnittet.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Om nFirstChar till exempel identifierar bokstaven "a" och nLastChar identifierar bokstaven "z", hämtar funktionen bredden på alla gemener.

Funktionen lagrar värdena i bufferten som pekas på av lpBuffer. Bufferten måste vara tillräckligt stor för att rymma alla bredder. Det vill säga det måste finnas minst 26 poster i exemplet.

Om ett tecken i den efterföljande gruppen med tecken inte finns i ett visst teckensnitt tilldelas det standardtecknets breddvärde.

CDC::GetOutputTabbedTextExtent

Anropa den här medlemsfunktionen för att beräkna bredden och höjden på en teckensträng med hjälp m_hDCav utdataenhetskontexten.

CSize GetOutputTabbedTextExtent(
    LPCTSTR lpszString,
    int nCount,
    int nTabPositions,
    LPINT lpnTabStopPositions) const;

CSize GetOutputTabbedTextExtent(
    const CString& str,
    int nTabPositions,
    LPINT lpnTabStopPositions) const;

Parameters

lpszString
Pekar på en teckensträng som ska mätas. Du kan också skicka ett CString objekt för den här parametern.

nCount
Anger längden på strängen som pekas på av lpszString.

nTabPositions
Anger antalet tab-stop-positioner i matrisen som pekas på av lpnTabStopPositions.

lpnTabStopPositions
Pekar på en matris med heltal som innehåller tab-stop-positionerna i logiska enheter. Tabbstoppen måste sorteras i ökande ordning. det minsta x-värdet ska vara det första objektet i matrisen. Bakåtflikar tillåts inte.

str
Ett CString objekt som innehåller de angivna tecknen som ska mätas.

Return Value

Dimensionerna för strängen (i logiska enheter) i ett CSize objekt.

Remarks

Om strängen innehåller ett eller flera tabbtecken baseras strängens bredd på de tabbstopp som anges av lpnTabStopPositions. Funktionen använder det markerade teckensnittet för att beräkna strängens dimensioner.

Den aktuella urklippsregionen förskjuter inte den bredd och höjd som returneras av GetOutputTabbedTextExtent funktionen.

Eftersom vissa enheter inte placerar tecken i vanliga cellmatriser (dvs. de kern tecken), summan av omfattningen av tecknen i en sträng kanske inte är lika med strängens omfattning.

Om nTabPositions är 0 och lpnTabStopPositions är NULLexpanderas flikarna till åtta genomsnittliga teckenbredder. Om nTabPositions är 1 avgränsas tabbstoppen med det avstånd som anges av det första värdet i matrisen till vilka lpnTabStopPositions punkter. Om lpnTabStopPositions pekar på mer än ett enda värde anges ett tabbstopp för varje värde i matrisen, upp till det tal som anges av nTabPositions.

CDC::GetOutputTextExtent

Anropa den här medlemsfunktionen för att använda enhetskontexten för utdata och m_hDCberäkna bredden och höjden på en textrad med det aktuella teckensnittet.

CSize GetOutputTextExtent(
    LPCTSTR lpszString,
    int nCount) const;

CSize GetOutputTextExtent(const CString& str) const;

Parameters

lpszString
Pekar på en sträng med tecken. Du kan också skicka ett CString objekt för den här parametern.

nCount
Anger längden på strängen som pekas på av lpszString.

str
Ett CString objekt som innehåller de angivna tecknen som ska mätas.

Return Value

Dimensionerna för strängen (i logiska enheter) som returneras i ett CSize objekt.

Remarks

Den aktuella urklippsregionen påverkar inte bredden och höjden som returneras av GetOutputTextExtent.

Eftersom vissa enheter inte placerar tecken i vanliga cellmatriser (dvs. utför de kerning), kanske summan av tecknens omfattning i en sträng inte är lika med strängens omfattning.

CDC::GetOutputTextMetrics

Hämtar måtten för det aktuella teckensnittet med hjälp av m_hDCutdataenhetskontexten.

BOOL GetOutputTextMetrics(LPTEXTMETRIC lpMetrics) const;

Parameters

lpMetrics
Pekar på den TEXTMETRIC struktur som tar emot måtten.

Return Value

Nonzero om funktionen lyckas; annars 0.

CDC::GetPath

Hämtar koordinaterna som definierar slutpunkterna för linjer och kontrollpunkterna för kurvor som finns i sökvägen som har valts i enhetskontexten.

int GetPath(
    LPPOINT lpPoints,
    LPBYTE lpTypes,
    int nCount) const;

Parameters

lpPoints
Pekar på en matris med POINT datastrukturer eller CPoint objekt där linjeslutpunkterna och kurvkontrollpunkterna placeras.

lpTypes
Pekar på en matris med byte där hörntyperna placeras. Värden är något av följande:

  • PT_MOVETO Anger att motsvarande punkt i lpPoints startar en disjoint figur.

  • PT_LINETO Anger att föregående punkt och motsvarande punkt i lpPoints är slutpunkterna för en rad.

  • PT_BEZIERTO Anger att motsvarande punkt i lpPoints är en kontrollpunkt eller slutpunkt för en Bzier-kurva.

PT_BEZIERTO förekommer alltid i uppsättningar med tre. Punkten i sökvägen omedelbart före dem definierar startpunkten för Bzier-kurvan. De första två PT_BEZIERTO punkterna är kontrollpunkterna och den tredje PT_BEZIERTO punkten är slutpunkten (om hårdkodad).

En PT_LINETO eller PT_BEZIERTO en typ kan kombineras med följande flagga (med hjälp av bitvis operatorn OR) för att indikera att motsvarande punkt är den sista punkten i en bild och att figuren ska stängas:

  • PT_CLOSEFIGURE Anger att figuren stängs automatiskt efter att motsvarande linje eller kurva har ritats. Figuren stängs genom att en linje ritas från linje- eller kurvslutpunkten till den punkt som motsvarar den sista PT_MOVETO.

nCount
Anger det totala antalet POINT datastrukturer som kan placeras i matrisen lpPoints . Det här värdet måste vara samma som antalet byte som kan placeras i matrisen lpTypes .

Return Value

Om parametern nCount inte är noll räknas antalet punkter upp. Om nCount är 0, det totala antalet punkter i sökvägen (och GetPath skriver ingenting till buffertarna). Om nCount är nonzero och är mindre än antalet punkter i sökvägen är returvärdet -1.

Remarks

Enhetskontexten måste innehålla en stängd sökväg. Sökvägens punkter returneras i logiska koordinater. Punkter lagras i sökvägen i enhetskoordinater, så GetPath ändrar punkterna från enhetskoordinater till logiska koordinater med hjälp av inverteringen av den aktuella omvandlingen. Medlemsfunktionen FlattenPath kan anropas före GetPathför att konvertera alla kurvor i sökvägen till linjesegment.

Example

Se exemplet för CDC::BeginPath.

CDC::GetPixel

Hämtar RGB-färgvärdet för pixeln vid den punkt som anges av x och y.

COLORREF GetPixel(
    int x,
    int y) const;

COLORREF GetPixel(POINT point) const;

Parameters

x
Anger den logiska x-koordinaten för den punkt som ska undersökas.

y
Anger den logiska y-koordinaten för den punkt som ska undersökas.

point
Anger de logiska x- och y-koordinaterna för den punkt som ska undersökas.

Return Value

För båda versionerna av funktionen, ett RGB-färgvärde för färgen på den angivna punkten. Det är -1 om koordinaterna inte anger någon punkt i urklippsregionen.

Remarks

Punkten måste finnas i urklippsregionen. Om punkten inte finns i urklippsregionen har funktionen ingen effekt och returnerar -1.

Alla enheter stöder GetPixel inte funktionen. Mer information finns i RC_BITBLT rasterfunktionen under GetDeviceCaps medlemsfunktionen.

Medlemsfunktionen GetPixel har två formulär. Den första tar två koordinatvärden; den andra tar antingen en POINT struktur eller ett CPoint objekt.

CDC::GetPolyFillMode

Hämtar det aktuella polygonfyllningsläget.

int GetPolyFillMode() const;

Return Value

Det aktuella polygonfyllda läget, ALTERNATE eller WINDING, om funktionen lyckas.

Remarks

SetPolyFillMode Se medlemsfunktionen för en beskrivning av polygonfyllningslägena.

CDC::GetROP2

Hämtar det aktuella ritningsläget.

int GetROP2() const;

Return Value

Ritningsläget. En lista över värden för ritningsläge finns i SetROP2 medlemsfunktionen.

Remarks

Ritningsläget anger hur pennans färger och det inre av fyllda objekt kombineras med den färg som redan finns på visningsytan.

CDC::GetSafeHdc

Anropa den här medlemsfunktionen för att hämta m_hDCutdataenhetskontexten.

HDC GetSafeHdc() const;

Return Value

Ett handtag för enhetskontext.

Remarks

Den här medlemsfunktionen fungerar också med null-pekare.

CDC::GetStretchBltMode

Hämtar det aktuella bitmapps-stretching-läget.

int GetStretchBltMode() const;

Return Value

Returvärdet anger det aktuella bitmap-stretching-läget – STRETCH_ANDSCANS, STRETCH_DELETESCANSeller STRETCH_ORSCANS – om funktionen lyckas.

Remarks

Läget bitmap-stretching definierar hur information tas bort från bitmappar som sträcks ut eller komprimeras av StretchBlt medlemsfunktionen.

Lägena STRETCH_ANDSCANS och STRETCH_ORSCANS används vanligtvis för att bevara förgrundspixlar i monokroma bitmappar. Läget STRETCH_DELETESCANS används vanligtvis för att bevara färg i färgbitmappar.

CDC::GetTabbedTextExtent

Anropa den här medlemsfunktionen för att beräkna bredden och höjden på en teckensträng med hjälp m_hAttribDCav attributenhetens kontext.

CSize GetTabbedTextExtent(
    LPCTSTR lpszString,
    int nCount,
    int nTabPositions,
    LPINT lpnTabStopPositions) const;

CSize GetTabbedTextExtent(
    const CString& str,
    int nTabPositions,
    LPINT lpnTabStopPositions) const;

Parameters

lpszString
Pekar på en teckensträng. Du kan också skicka ett CString objekt för den här parametern.

nCount
Anger längden på strängen som pekas på av lpszString.

nTabPositions
Anger antalet tab-stop-positioner i matrisen som pekas på av lpnTabStopPositions.

lpnTabStopPositions
Pekar på en matris med heltal som innehåller tab-stop-positionerna i logiska enheter. Tabbstoppen måste sorteras i ökande ordning. det minsta x-värdet ska vara det första objektet i matrisen. Bakåtflikar tillåts inte.

str
Ett CString objekt som innehåller de angivna tecken som ska ritas.

Return Value

Dimensionerna för strängen (i logiska enheter) i ett CSize objekt.

Remarks

Om strängen innehåller ett eller flera tabbtecken baseras strängens bredd på de tabbstopp som anges av lpnTabStopPositions. Funktionen använder det markerade teckensnittet för att beräkna strängens dimensioner.

Den aktuella urklippsregionen förskjuter inte den bredd och höjd som returneras av GetTabbedTextExtent funktionen.

Eftersom vissa enheter inte placerar tecken i vanliga cellmatriser (dvs. de kern tecken), summan av omfattningen av tecknen i en sträng kanske inte är lika med strängens omfattning.

Om nTabPositions är 0 och lpnTabStopPositions är NULLexpanderas flikarna till åtta gånger den genomsnittliga teckenbredden. Om nTabPositions är 1 avgränsas tabbstoppen med det avstånd som anges av det första värdet i matrisen till vilka lpnTabStopPositions punkter. Om lpnTabStopPositions pekar på mer än ett enda värde anges ett tabbstopp för varje värde i matrisen, upp till det tal som anges av nTabPositions.

CDC::GetTextAlign

Hämtar status för textjusteringsflaggor för enhetskontexten.

UINT GetTextAlign() const;

Return Value

Status för textjusteringsflaggor. Returvärdet är ett eller flera av följande värden:

  • TA_BASELINE Anger justering av x-axeln och baslinjen för det valda teckensnittet i rektangeln för avgränsning.

  • TA_BOTTOM Anger justering av x-axeln och nederkanten av avgränsningsrektangeln.

  • TA_CENTER Anger justering av y-axeln och mitten av avgränsningsrektangeln.

  • TA_LEFT Anger justering av y-axeln och vänster sida av avgränsningsrektangeln.

  • TA_NOUPDATECP Anger att den aktuella positionen inte uppdateras.

  • TA_RIGHT Anger justering av y-axeln och höger sida av avgränsningsrektangeln.

  • TA_TOP Anger justering av x-axeln och toppen av avgränsningsrektangeln.

  • TA_UPDATECP Anger att den aktuella positionen uppdateras.

Remarks

Textjusteringsflaggor avgör hur medlemsfunktionerna TextOut justerar ExtTextOut en textsträng i förhållande till strängens startpunkt. Textjusteringsflaggor är inte nödvändigtvis enbitsflaggor och kan vara lika med 0. För att testa om en flagga har angetts bör ett program följa dessa steg:

  1. Använd operatorn BITWISE OR (|) på flaggan och dess relaterade flaggor, grupperade på följande sätt:

    • TA_LEFT, TA_CENTER och TA_RIGHT

    • TA_BASELINE, TA_BOTTOM och TA_TOP

    • TA_NOUPDATECP och TA_UPDATECP

  2. Använd operatorn C++ bitwise AND (&) på resultatet och returvärdet GetTextAlignför .

  3. Testa för likheten mellan det här resultatet och flaggan.

CDC::GetTextCharacterExtra

Hämtar den aktuella inställningen för mängden intercharacter-avstånd.

int GetTextCharacterExtra() const;

Return Value

Mängden intercharacter-avstånd.

Remarks

GDI lägger till det här avståndet till varje tecken, inklusive bryttecken, när det skriver en textrad till enhetskontexten.

Standardvärdet för mängden intercharacteravstånd är 0.

CDC::GetTextColor

Hämtar den aktuella textfärgen.

COLORREF GetTextColor() const;

Return Value

Den aktuella textfärgen som ett RGB-färgvärde.

Remarks

Textfärgen är förgrundsfärgen för tecken som ritas med hjälp av medlemsfunktionerna TextOutför GDI-textutdata , ExtTextOutoch TabbedTextOut.

CDC::GetTextExtent

Anropa den här medlemsfunktionen för att beräkna bredden och höjden på en textrad med det aktuella teckensnittet för att fastställa dimensionerna.

CSize GetTextExtent(
    LPCTSTR lpszString,
    int nCount) const;

CSize GetTextExtent(const CString& str) const;

Parameters

lpszString
Pekar på en sträng med tecken. Du kan också skicka ett CString objekt för den här parametern.

nCount
Anger antalet tecken i strängen.

str
Ett CString objekt som innehåller de angivna tecknen.

Return Value

Dimensionerna för strängen (i logiska enheter) i ett CSize objekt.

Remarks

Informationen hämtas från m_hAttribDCattributet enhetskontext.

Som standard GetTextExtent förutsätter vi att texten som den hämtar dimensionen för anges längs en vågrät linje (det vill säga escapementet är 0). Om du skapar ett teckensnitt som anger en escapement som inte är noll måste du konvertera textens vinkel explicit för att hämta strängens dimensioner.

Den aktuella urklippsregionen påverkar inte bredden och höjden som returneras av GetTextExtent.

Eftersom vissa enheter inte placerar tecken i vanliga cellmatriser (dvs. utför de kerning), kanske summan av tecknens omfattning i en sträng inte är lika med strängens omfattning.

CDC::GetTextExtentExPointI

Hämtar antalet tecken i en angiven sträng som får plats inom ett angivet utrymme och fyller en matris med textutrymmet för vart och ett av dessa tecken.

BOOL GetTextExtentExPointI(
    LPWORD pgiIn,
    int cgi,
    int nMaxExtent,
    LPINT lpnFit,
    LPINT alpDx,
    LPSIZE lpSize) const;

Parameters

pgiIn
En pekare till en matris med glyphindex för vilka omfattningar ska hämtas.

cgi
Anger antalet glyfer i matrisen som pekas på av pgiIn.

nMaxExtent
Anger den maximala tillåtna bredden i logiska enheter för den formaterade strängen.

lpnFit
En pekare till ett heltal som tar emot ett antal av det maximala antalet tecken som får plats i det utrymme som anges av nMaxExtent. När lpnFit är NULLignoreras nMaxExtent .

alpDx
En pekare till en matris med heltal som tar emot partiella glyf-omfattningar. Varje element i matrisen ger avståndet, i logiska enheter, mellan början av matrisen för glyphindex och en av de glyfer som passar i det utrymme som anges av nMaxExtent. Även om den här matrisen bör ha minst lika många element som glyphindex som anges av cgi, fyller funktionen matrisen med omfattningar endast för så många glyph-index som anges av lpnFit. Om lpnDx är NULLberäknar inte funktionen partiella strängbredder.

lpSize
Pekare till en SIZE struktur som tar emot dimensionerna för matrisen för glyphindex i logiska enheter. Det här värdet får inte vara NULL.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Den här medlemsfunktionen emulerar funktionens funktioner GetTextExtentExPointIenligt beskrivningen i Windows SDK.

CDC::GetTextExtentPointI

Hämtar bredden och höjden på den angivna matrisen med glyfindex.

BOOL GetTextExtentPointI(
    LPWORD pgiIn,
    int cgi,
    LPSIZE lpSize) const;

Parameters

pgiIn
En pekare till en matris med glyphindex för vilka omfattningar ska hämtas.

cgi
Anger antalet glyfer i matrisen som pekas på av pgiIn.

lpSize
Pekare till en SIZE struktur som tar emot dimensionerna för matrisen för glyphindex i logiska enheter. Det här värdet får inte vara NULL.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Den här medlemsfunktionen emulerar funktionens funktioner GetTextExtentPointIenligt beskrivningen i Windows SDK.

CDC::GetTextFace

Anropa den här medlemsfunktionen för att kopiera typsnittsnamnet för det aktuella teckensnittet till en buffert.

int GetTextFace(
    int nCount,
    LPTSTR lpszFacename) const;

int GetTextFace(CString& rString) const;

Parameters

nCount
Anger buffertens storlek (i byte). Om typeface-namnet är längre än det antal byte som anges av den här parametern trunkeras namnet.

lpszFacename
Pekar på bufferten för typsnittsnamnet.

rString
En referens till ett CString objekt.

Return Value

Antalet byte som kopierats till bufferten, inklusive det avslutande null-tecknet. Det är 0 om ett fel inträffar.

Remarks

Typsnittsnamnet kopieras som en null-avslutad sträng.

CDC::GetTextMetrics

Hämtar måtten för det aktuella teckensnittet med hjälp av attributenhetskontexten.

BOOL GetTextMetrics(LPTEXTMETRIC lpMetrics) const;

Parameters

lpMetrics
Pekar på den TEXTMETRIC struktur som tar emot måtten.

Return Value

Nonzero om funktionen lyckas; annars 0.

CDC::GetViewportExt

Hämtar x- och y-omfattningen för enhetskontextens visningsport.

CSize GetViewportExt() const;

Return Value

X- och y-utsträckningarna (i enhetsenheter) som ett CSize objekt.

CDC::GetViewportOrg

Hämtar x- och y-koordinaterna för ursprunget för det visningsområde som är associerat med enhetskontexten.

CPoint GetViewportOrg() const;

Return Value

Ursprunget för visningsplatsen (i enhetskoordinater) som ett CPoint objekt.

CDC::GetWindow

Returnerar fönstret som är associerat med visningsenhetens kontext.

CWnd* GetWindow() const;

Return Value

Pekare till ett CWnd objekt om det lyckas, annars NULL.

Remarks

Det här är en avancerad funktion. Den här medlemsfunktionen kanske till exempel inte returnerar visningsfönstret när du skriver ut eller i förhandsgranskningen. Det returnerar alltid det fönster som är associerat med utdata. Utdatafunktioner som använder den angivna DC-dragningen i det här fönstret.

CDC::GetWindowExt

Hämtar x- och y-omfattningen för fönstret som är associerat med enhetskontexten.

CSize GetWindowExt() const;

Return Value

X- och y-utsträckningarna (i logiska enheter) som ett CSize objekt.

CDC::GetWindowOrg

Hämtar x- och y-koordinaterna för fönstrets ursprung som är associerat med enhetskontexten.

CPoint GetWindowOrg() const;

Return Value

Fönstrets ursprung (i logiska koordinater) som ett CPoint objekt.

CDC::GetWorldTransform

Hämtar den aktuella omvandlingen mellan värld och rymd till sidutrymme.

BOOL GetWorldTransform(XFORM& rXform) const;

Parameters

rXform
Referens till en XFORM struktur som tar emot den aktuella omvandlingen av världsrymden till sidutrymmet.

Return Value

Returnerar ett värde som inte är noll vid lyckat resultat.

Returnerar 0 vid fel.

Om du vill få utökad felinformation anropar du GetLastError.

Remarks

Den här metoden omsluter Windows GDI-funktionen GetWorldTransform.

CDC::GradientFill

Anropa den här medlemsfunktionen för att fylla rektangel- och triangelstrukturer med färg som smidigt tonas från ena sidan till den andra.

BOOL GradientFill(
    TRIVERTEX* pVertices,
    ULONG nVertices,
    void* pMesh,
    ULONG nMeshElements,
    DWORD dwMode);

Parameters

pVertices
Pekare till en matris med TRIVERTEX strukturer som var och en definierar ett triangelhörn.

nVertices
Antalet hörn.

pMesh
Matris med GRADIENT_TRIANGLE strukturer i triangelläge eller en matris med GRADIENT_RECT strukturer i rektangelläge.

nMeshElements
Antalet element (trianglar eller rektanglar) i pMesh.

dwMode
Anger toningsfyllningsläge. En lista över möjliga värden GradientFill finns i Windows SDK.

Return Value

TRUE om det lyckas. annars FALSE.

Remarks

Mer information GradientFill finns i Windows SDK.

CDC::GrayString

Ritar nedtonad (grå) text på den angivna platsen genom att skriva texten i en minnesbitmapp, nedtona bitmappen och sedan kopiera bitmappen till displayen.

virtual BOOL GrayString(
    CBrush* pBrush,
    BOOL (CALLBACK* lpfnOutput)(
    HDC,
    LPARAM,
    int),
    LPARAM lpData,
    int nCount,
    int x,
    int y,
    int nWidth,
    int nHeight);

Parameters

pBrush
Identifierar penseln som ska användas för nedtoning (nedtoning).

lpfnOutput
Anger procedure-instance-adressen för den programbaserade återanropsfunktionen som ska dra strängen. Mer information finns i beskrivningen av funktionen För återanrop i WindowsOutputFunc. Om den här parametern är NULLanvänder systemet Windows-funktionen TextOut för att rita strängen och lpData antas vara en lång pekare till teckensträngen som ska matas ut.

lpData
Anger en långt pekare till data som ska skickas till utdatafunktionen. Om lpfnOutput är NULLlpData måste vara en lång pekare till strängen som ska matas ut.

nCount
Anger antalet tecken som ska matas ut. Om den här parametern är 0 GrayString beräknar längden på strängen (förutsatt att det lpData är en pekare till strängen). Om nCount är 1 och funktionen som pekas på av lpfnOutput returnerar 0 visas bilden men inte nedtonad.

x
Anger den logiska x-koordinaten för startpositionen för den rektangel som omger strängen.

y
Anger den logiska y-koordinaten för startpositionen för den rektangel som omger strängen.

nWidth
Anger bredden (i logiska enheter) för den rektangel som omger strängen. Om nWidth är 0 GrayString beräknar du områdets bredd, förutsatt att lpData det är en pekare till strängen.

nHeight
Anger höjden (i logiska enheter) för rektangeln som omger strängen. Om nHeight är 0 GrayString beräknar du höjden på området, förutsatt att lpData det är en pekare till strängen.

Return Value

Nonzero om strängen ritas, eller 0 om antingen TextOut funktionen eller den programbaserade utdatafunktionen returnerade 0, eller om det inte fanns tillräckligt med minne för att skapa en minnesbitmapp för nedtoning.

Remarks

Funktionen tonar ned texten oavsett vald pensel och bakgrund. Medlemsfunktionen GrayString använder det markerade teckensnittet. Mappningsläget MM_TEXT måste väljas innan du använder den här funktionen.

Ett program kan rita nedtonade (nedtonade) strängar på enheter som stöder en helgrå färg utan att anropa GrayString medlemsfunktionen. Systemfärgen COLOR_GRAYTEXT är den helgrå systemfärg som används för att rita inaktiverad text. Programmet kan anropa GetSysColor Windows-funktionen för att hämta färgvärdet COLOR_GRAYTEXTför . Om färgen är annan än 0 (svart) kan programmet anropa SetTextColor medlemsfunktionen för att ange textfärgen till färgvärdet och sedan rita strängen direkt. Om den hämtade färgen är svart måste programmet anropa GrayString för att dämpa (grå) texten.

Om lpfnOutput är NULLanvänder GDI Windows-funktionen TextOut och lpData antas vara en långt pekare till tecknet som ska matas ut. Om de tecken som ska matas ut inte kan hanteras av TextOut medlemsfunktionen (till exempel om strängen lagras som en bitmapp) måste programmet ange en egen utdatafunktion.

Alla återanropsfunktioner måste fånga Microsoft Foundation-undantag innan de återgår till Windows, eftersom undantag inte kan genereras över motringningsgränser. Mer information om undantag finns i artikeln Undantag.

Återanropsfunktionen som skickas till GrayString måste använda __stdcall anropskonventionen och måste exporteras med __declspec.

När ramverket är i förhandsgranskningsläge översätts ett anrop till GrayString medlemsfunktionen till ett TextOut anrop och återanropsfunktionen anropas inte.

CDC::HIMETRICtoDP

Använd den här funktionen när du konverterar HIMETRIC storlekar från OLE till bildpunkter.

void HIMETRICtoDP(LPSIZE lpSize) const;

Parameters

lpSize
Pekar på en struktur eller SIZE ett CSize objekt.

Remarks

Om mappningsläget för objektet för enhetskontexten är MM_LOENGLISH, MM_HIENGLISHMM_LOMETRIC eller MM_HIMETRIC, baseras konverteringen på antalet pixlar i den fysiska tum. Om mappningsläget är ett av de andra icke-begränsade lägena (till exempel MM_TEXT), baseras konverteringen på antalet pixlar i den logiska tum.

CDC::HIMETRICtoLP

Anropa den här funktionen för att konvertera HIMETRIC enheter till logiska enheter.

void HIMETRICtoLP(LPSIZE lpSize) const;

Parameters

lpSize
Pekar på en struktur eller SIZE ett CSize objekt.

Remarks

Använd den här funktionen när du får HIMETRIC storlekar från OLE och vill konvertera dem till programmets naturliga mappningsläge.

Konverteringen utförs genom att HIMETRIC först konvertera enheterna till pixlar och sedan konvertera dessa enheter till logiska enheter med hjälp av enhetskontextens aktuella mappningsenheter. Observera att omfattningen av enhetens fönster och visningsområde påverkar resultatet.

CDC::IntersectClipRect

Skapar en ny urklippsregion genom att bilda skärningspunkten för den aktuella regionen och den rektangel som anges av x1, y1, x2och y2.

int IntersectClipRect(
    int x1,
    int y1,
    int x2,
    int y2);

int IntersectClipRect(LPCRECT lpRect);

Parameters

x1
Anger den logiska x-koordinaten i det övre vänstra hörnet i rektangeln.

y1
Anger den logiska y-koordinaten i det övre vänstra hörnet i rektangeln.

x2
Anger den logiska x-koordinaten i det nedre högra hörnet i rektangeln.

y2
Anger den logiska y-koordinaten i det nedre högra hörnet i rektangeln.

lpRect
Anger rektangeln. Du kan skicka antingen ett CRect objekt eller en pekare till en RECT struktur för den här parametern.

Return Value

Den nya urklippsregionens typ. Det kan vara något av följande värden:

  • COMPLEXREGION Den nya urklippsregionen har överlappande kantlinjer.

  • ERROR Enhetskontexten är inte giltig.

  • NULLREGION Den nya urklippsregionen är tom.

  • SIMPLEREGION Den nya urklippsregionen har inga överlappande kantlinjer.

Remarks

GDI klipper alla efterföljande utdata så att de passar inom den nya gränsen. Bredden och höjden får inte överstiga 32 767.

CDC::InvertRect

Invertera innehållet i den angivna rektangeln.

void InvertRect(LPCRECT lpRect);

Parameters

lpRect
Pekar på en RECT som innehåller de logiska koordinaterna för rektangeln som ska inverteras. Du kan också skicka ett CRect objekt för den här parametern.

Remarks

Inversion är en logisk NOT-åtgärd och vänder bitarna för varje pixel. På monokroma skärmar gör funktionen vita bildpunkter svarta och svarta bildpunkter vita. För färgvisning beror inversion på hur färger genereras för visningen. Om du anropar InvertRect två gånger med samma rektangel återställs visningen till dess tidigare färger.

Om rektangeln är tom ritas ingenting.

Example

void CDCView::DoInvertRect(CDC *pDC)
{
   // invert rect from 20,20 to 50,50
   CRect rect(20, 20, 50, 50);
   pDC->InvertRect(rect);

   // inverting again restores to normal
   ::Sleep(1000);
   pDC->InvertRect(rect);
}

CDC::InvertRgn

Invertera färgerna i den region som anges av pRgn.

BOOL InvertRgn(CRgn* pRgn);

Parameters

pRgn
Identifierar den region som ska inverteras. Koordinaterna för regionen anges i logiska enheter.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

På monokroma skärmar gör funktionen vita bildpunkter svarta och svarta bildpunkter vita. För färgvisning beror inversion på hur färgerna genereras för visningen.

CDC::IsPrinting

Avgör om enhetskontexten används för utskrift.

BOOL IsPrinting() const;

Return Value

Nonzero om objektet CDC är en skrivar-DC, annars 0.

CDC::LineTo

Ritar en linje från den aktuella positionen upp till, men inte inklusive, den punkt som anges av x och y (eller point).

BOOL LineTo(
    int x,
    int y);

BOOL LineTo(POINT point);

Parameters

x
Anger den logiska x-koordinaten för slutpunkten för raden.

y
Anger den logiska y-koordinaten för slutpunkten för raden.

point
Anger radens slutpunkt. Du kan skicka antingen en POINT struktur eller ett CPoint objekt för den här parametern.

Return Value

Nonzero om linjen ritas; annars 0.

Remarks

Linjen ritas med den valda pennan. Den aktuella positionen är inställd på x, y eller till point.

Example

Se exemplet för CRect::CenterPoint.

CDC::LPtoDP

Konverterar logiska enheter till enhetsenheter.

void LPtoDP(
    LPPOINT lpPoints,
    int nCount = 1) const;

void LPtoDP(LPRECT lpRect) const;
void LPtoDP(LPSIZE lpSize) const;

Parameters

lpPoints
Pekar på en matris med punkter. Varje punkt i matrisen är en POINT struktur eller ett CPoint objekt.

nCount
Antalet punkter i matrisen.

lpRect
Pekar på en RECT struktur eller ett CRect objekt. Den här parametern används för det vanliga fallet att mappa en rektangel från logiska enheter till enhetsenheter.

lpSize
Pekar på en SIZE struktur eller ett CSize objekt.

Remarks

Funktionen mappar koordinaterna för varje punkt, eller dimensioner av en storlek, från GDI:s logiska koordinatsystem till ett system för enhetskoordinat. Konverteringen beror på det aktuella mappningsläget och inställningarna för ursprunget och omfattningen av enhetens fönster och visningsport.

X- och y-koordinaterna för punkter är 2 byte signerade heltal i intervallet -32 768 till 32 767. Om mappningsläget skulle resultera i värden som är större än dessa gränser anger systemet värdena till -32 768 respektive 32 767.

CDC::LPtoHIMETRIC

Anropa den här funktionen för att konvertera logiska enheter till HIMETRIC enheter.

void LPtoHIMETRIC(LPSIZE lpSize) const;

Parameters

lpSize
Pekar på en SIZE struktur eller ett CSize objekt.

Remarks

Använd den här funktionen när du ger HIMETRIC storlekar till OLE och konverterar från programmets naturliga mappningsläge. Omfattningen av enhetens fönster och visningsområde påverkar resultatet.

Konverteringen utförs genom att först konvertera de logiska enheterna till pixlar med hjälp av enhetskontextens aktuella mappningsenheter och sedan konvertera dessa enheter till HIMETRIC enheter.

CDC::m_hAttribDC

Attributenhetskontexten för det här CDC objektet.

HDC m_hAttribDC;

Remarks

Som standard är den här enhetskontexten lika med m_hDC. I allmänhet CDC dirigeras GDI-anrop som begär information från enhetskontexten till m_hAttribDC. Mer information om hur du använder dessa två enhetskontexter finns i CDC klassbeskrivningen.

CDC::m_hDC

Utdataenhetskontexten för det här CDC objektet.

HDC m_hDC;

Remarks

Som standard m_hDC är lika med m_hAttribDC, den andra enhetskontexten omsluten av CDC. I allmänhet går GDI-anrop CDC som skapar utdata till enhetskontexten m_hDC . Du kan initiera m_hDC och m_hAttribDC peka på olika enheter. Mer information om hur du använder dessa två enhetskontexter finns i CDC klassbeskrivningen.

CDC::MaskBlt

Kombinerar färgdata för käll- och målbitmapparna med hjälp av den angivna mask- och rasteråtgärden.

BOOL MaskBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    CBitmap& maskBitmap,
    int xMask,
    int yMask,
    DWORD dwRop);

Parameters

x
Anger den logiska x-koordinaten i det övre vänstra hörnet i målrektangeln.

y
Anger den logiska y-koordinaten i det övre vänstra hörnet i målrektangeln.

nWidth
Anger bredden i logiska enheter för målrektangeln och källbitmappen.

nHeight
Anger höjden i logiska enheter för målrektangeln och källbitmappen.

pSrcDC
Identifierar enhetskontexten som bitmappen ska kopieras från. Den måste vara noll om parametern dwRop anger en rasteråtgärd som inte innehåller någon källa.

xSrc
Anger den logiska x-koordinaten i det övre vänstra hörnet i källbitmappen.

ySrc
Anger den logiska y-koordinaten i det övre vänstra hörnet i källbitmappen.

maskBitmap
Identifierar den monokroma maskbitmappen i kombination med färgbitmappen i källenhetskontexten.

xMask
Anger den vågräta pixelförskjutningen för maskbitmappen som anges av parametern maskBitmap .

yMask
Anger den lodräta pixelförskjutningen för maskbitmappen som anges av parametern maskBitmap .

dwRop
Anger åtgärdskoder för både förgrunds- och bakgrundsternary raster, som funktionen använder för att styra kombinationen av käll- och måldata. Åtgärdskoden för bakgrunds raster lagras i den höga byte av det höga ordet för det här värdet. Förgrunds rasteråtgärdskoden lagras i den låga byte av det höga ordet i det här värdet. det låga ordet för det här värdet ignoreras och bör vara noll. Makrot MAKEROP4 skapar sådana kombinationer av förgrunds- och bakgrunds raster-åtgärdskoder. Se avsnittet Kommentarer för en diskussion om förgrund och bakgrund i kontexten för den här funktionen. BitBlt Se medlemsfunktionen för en lista över vanliga raster-åtgärdskoder.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Värdet 1 i masken som anges av maskBitmap anger att den förgrunds rasteråtgärdskod som anges av dwRop ska tillämpas på den platsen. Värdet 0 i masken anger att den bakgrunds rasteråtgärdskod som anges av dwRop ska tillämpas på den platsen. Om rasteråtgärderna kräver en källa måste maskrektangeln täcka källrektangeln. Om den inte gör det misslyckas funktionen. Om rasteråtgärderna inte kräver någon källa måste maskrektangeln täcka målrektangeln. Om den inte gör det misslyckas funktionen.

Om en rotations- eller sk sheartransformation gäller för källenhetskontexten när den här funktionen anropas uppstår ett fel. Andra typer av transformeringar tillåts dock.

Om färgformaten för käll-, mönster- och målbitmapparna skiljer sig åt konverterar den här funktionen mönstret eller källformatet, eller båda, för att matcha målformatet. Om maskbitmappen inte är en monokrom bitmapp uppstår ett fel. När en förbättrad metafil registreras uppstår ett fel (och funktionen returnerar 0) om källenhetskontexten identifierar en utökad metafilenhetskontext. Alla enheter stöder MaskBltinte . Ett program bör anropa GetDeviceCaps för att avgöra om en enhet stöder den här funktionen. Om ingen maskbitmapp har angetts fungerar den här funktionen exakt som BitBlt, med hjälp av förgrunds rasteråtgärdskoden. Pixeln förskjuts i maskens bitmappskarta till punkten (0,0) i källenhetskontextens bitmapp. Detta är användbart för fall där en maskbitmapp innehåller en uppsättning masker. ett program kan enkelt tillämpa någon av dem på en mask-blitting-uppgift genom att justera pixelförskjutningar och rektangelstorlekar som skickas till MaskBlt.

CDC::ModifyWorldTransform

Ändrar världsomvandlingen för en enhetskontext med det angivna läget.

BOOL ModifyWorldTransform(
    const XFORM& rXform,
    DWORD iMode);

Parameters

rXform
Referens till en XFORM struktur som används för att ändra världsomvandlingen för den angivna enhetskontexten.

iMode
Anger hur transformeringsdata ändrar den aktuella världsomvandlingen. En lista över de värden som den här parametern kan ta finns i ModifyWorldTransform.

Return Value

Returnerar ett värde som inte är noll vid lyckat resultat.

Returnerar 0 vid fel.

Om du vill få utökad felinformation anropar du GetLastError.

Remarks

Den här metoden omsluter Windows GDI-funktionen ModifyWorldTransform.

CDC::MoveTo

Flyttar den aktuella positionen till den punkt som anges av x och y (eller av point).

CPoint MoveTo(
    int x,
    int y);

CPoint MoveTo(POINT point);

Parameters

x
Anger den logiska x-koordinaten för den nya positionen.

y
Anger den logiska y-koordinaten för den nya positionen.

point
Anger den nya positionen. Du kan skicka antingen en POINT struktur eller ett CPoint objekt för den här parametern.

Return Value

X- och y-koordinaterna för den tidigare positionen som ett CPoint objekt.

Example

Se exemplet för CRect::CenterPoint.

CDC::OffsetClipRgn

Flyttar urklippsregionen i enhetskontexten med de angivna förskjutningarna.

int OffsetClipRgn(
    int x,
    int y);

int OffsetClipRgn(SIZE size);

Parameters

x
Anger antalet logiska enheter som ska flyttas åt vänster eller höger.

y
Anger antalet logiska enheter som ska flyttas uppåt eller nedåt.

size
Anger det belopp som ska förskjutas.

Return Value

Den nya regionens typ. Det kan vara något av följande värden:

  • COMPLEXREGION Urklippsområdet har överlappande kantlinjer.

  • ERROR Enhetskontexten är inte giltig.

  • NULLREGION Urklippsregionen är tom.

  • SIMPLEREGION Urklippsregionen har inga överlappande kantlinjer.

Remarks

Funktionen flyttar regionenheterna x längs x-axeln och y enheterna längs y-axeln.

CDC::OffsetViewportOrg

Ändrar koordinaterna för visningsportens ursprung i förhållande till koordinaterna för det aktuella viewport-ursprunget.

virtual CPoint OffsetViewportOrg(
    int nWidth,
    int nHeight);

Parameters

nWidth
Anger antalet enheter som ska läggas till i det aktuella ursprungets x-koordinat.

nHeight
Anger antalet enheter som ska läggas till i det aktuella ursprungets y-koordinat.

Return Value

Det tidigare viewport-ursprunget (i enhetskoordinater) som ett CPoint objekt.

CDC::OffsetWindowOrg

Ändrar koordinaterna för fönstrets ursprung i förhållande till koordinaterna för det aktuella fönstrets ursprung.

CPoint OffsetWindowOrg(
    int nWidth,
    int nHeight);

Parameters

nWidth
Anger antalet logiska enheter som ska läggas till i det aktuella ursprungets x-koordinat.

nHeight
Anger antalet logiska enheter som ska läggas till i det aktuella ursprungets y-koordinat.

Return Value

Det tidigare fönstrets ursprung (i logiska koordinater) som ett CPoint objekt.

CDC::operator HDC

Använd den här operatorn för att hämta objektets CDC enhetskontexthandtag.

operator HDC() const;

Return Value

Om det lyckas kan du hantera objektet för enhetskontexten. annars . NULL

Remarks

Du kan använda handtaget för att anropa Windows-API:er direkt.

CDC::PaintRgn

Fyller den region som anges med hjälp av pRgn den aktuella penseln.

BOOL PaintRgn(CRgn* pRgn);

Parameters

pRgn
Identifierar den region som ska fyllas i. Koordinaterna för den angivna regionen anges i logiska enheter.

Return Value

Nonzero om funktionen lyckas; annars 0.

CDC::PatBlt

Skapar ett bitmönster på enheten.

BOOL PatBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    DWORD dwRop);

Parameters

x
Anger den logiska x-koordinaten i det övre vänstra hörnet i rektangeln som ska ta emot mönstret.

y
Anger den logiska y-koordinaten i det övre vänstra hörnet i rektangeln som ska ta emot mönstret.

nWidth
Anger bredden (i logiska enheter) för den rektangel som ska ta emot mönstret.

nHeight
Anger höjden (i logiska enheter) för rektangeln som ska ta emot mönstret.

dwRop
Anger rasteråtgärdskoden. Raster-operation codes (ROPs) definierar hur GDI kombinerar färger i utdataåtgärder som omfattar en aktuell pensel, en möjlig källbitmapp och en målbitmapp. Den här parametern kan vara ett av följande värden:

  • PATCOPY Kopierar mönster till målbitmapp.

  • PATINVERT Kombinerar målbitmapp med mönster med operatorn Booleskt XOR (^).

  • DSTINVERT Invertera målbitmappen.

  • BLACKNESS Gör alla utdata svarta.

  • WHITENESS Gör alla utdata vita.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Mönstret är en kombination av den valda penseln och mönstret som redan finns på enheten. Rasteråtgärdskoden som anges av dwRop definierar hur mönstren ska kombineras. Rasteråtgärderna som anges för den här funktionen är en begränsad delmängd av de fullständiga 256 ternary raster-operation-koderna. I synnerhet kan inte en rasteråtgärdskod som refererar till en källa användas.

Alla enhetskontexter stöder PatBlt inte funktionen. Om du vill ta reda på om en enhetskontext stöder PatBltanropar GetDeviceCaps du medlemsfunktionen med indexet RASTERCAPS och kontrollerar returvärdet för RC_BITBLT flaggan.

CDC::Pie

Ritar en cirkelformad kil genom att rita en elliptisk båge vars mittpunkt och två slutpunkter är sammanfogade med linjer.

BOOL Pie(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3,
    int x4,
    int y4);

BOOL Pie(
    LPCRECT lpRect,
    POINT ptStart,
    POINT ptEnd);

Parameters

x1
Anger x-koordinaten för det övre vänstra hörnet i avgränsningsrektangeln (i logiska enheter).

y1
Anger y-koordinaten för det övre vänstra hörnet i avgränsningsrektangeln (i logiska enheter).

x2
Anger x-koordinaten för det nedre högra hörnet i avgränsningsrektangeln (i logiska enheter).

y2
Anger y-koordinaten för det nedre högra hörnet i avgränsningsrektangeln (i logiska enheter).

x3
Anger x-koordinaten för bågens startpunkt (i logiska enheter). Den här punkten behöver inte ligga exakt på bågen.

y3
Anger y-koordinaten för bågens startpunkt (i logiska enheter). Den här punkten behöver inte ligga exakt på bågen.

x4
Anger x-koordinaten för bågens slutpunkt (i logiska enheter). Den här punkten behöver inte ligga exakt på bågen.

y4
Anger y-koordinaten för bågens slutpunkt (i logiska enheter). Den här punkten behöver inte ligga exakt på bågen.

lpRect
Anger rektangeln för avgränsning. Du kan skicka antingen ett CRect objekt eller en pekare till en RECT struktur för den här parametern.

ptStart
Anger startpunkten för bågen. Den här punkten behöver inte ligga exakt på bågen. Du kan skicka antingen en POINT struktur eller ett CPoint objekt för den här parametern.

ptEnd
Anger bågens slutpunkt. Den här punkten behöver inte ligga exakt på bågen. Du kan skicka antingen en POINT struktur eller ett CPoint objekt för den här parametern.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Mitten av bågen är mitten av den avgränsningsrektangel som anges av x1, y1, x2och y2 (eller av lpRect). Start- och slutpunkterna för bågen anges av x3, y3, x4och y4 (eller av ptStart och ptEnd).

Bågen ritas med den valda pennan och rör sig motsols. Ytterligare två rader ritas från varje slutpunkt till bågens mittpunkt. Den cirkelformade ytan är fylld med den aktuella borsten. Om x3 är lika x4 med och y3 lika y4med är resultatet en ellips med en enda rad från mitten av ellipsen till punkten (x3, y3) eller (x4, y4).

Figuren som ritas av den här funktionen sträcker sig upp till men innehåller inte koordinaterna till höger och nederkant. Det innebär att figurens höjd är y2 - y1 och att bildens bredd är .x2 - x1 Både bredden och höjden på avgränsningsrektangeln måste vara större än 2 enheter och mindre än 32 767 enheter.

Example

void CDCView::DrawPie(CDC *pDC)
{
   // Fill the client area with a simple pie chart. A
   // big blue slice covers 75% of the pie, from
   // 6 o'clock to 3 o'clock. This portion is filled
   // with blue and has a blue edge. The remaining 25%
   // is filled with a red, diagonal hatch and has
   // a red edge.

   // Get the client area.
   CRect rectClient;
   GetClientRect(rectClient);

   // Make a couple of pens and similar brushes.
   CPen penBlue, penRed;
   CBrush brushBlue, brushRed;
   CBrush *pOldBrush;
   CPen *pOldPen;

   brushBlue.CreateSolidBrush(RGB(0, 0, 255));
   brushRed.CreateHatchBrush(HS_FDIAGONAL, RGB(255, 0, 0));
   penBlue.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(0, 0, 255));
   penRed.CreatePen(PS_SOLID | PS_COSMETIC, 1, RGB(255, 0, 0));

   // Draw from 3 o'clock to 6 o'clock, counterclockwise,
   // in a blue pen with a solid blue fill.

   pOldPen = pDC->SelectObject(&penBlue);
   pOldBrush = pDC->SelectObject(&brushBlue);

   pDC->Pie(rectClient,
            CPoint(rectClient.right, rectClient.CenterPoint().y),
            CPoint(rectClient.CenterPoint().x, rectClient.right));

   // Draw the remaining quarter slice from 6 o'clock
   // to 3 o'clock, counterclockwise, in a red pen with
   // the hatched brush.
   pDC->SelectObject(&penRed);
   pDC->SelectObject(&brushRed);

   // Same parameters, but reverse start and end points.
   pDC->Pie(rectClient,
            CPoint(rectClient.CenterPoint().x, rectClient.right),
            CPoint(rectClient.right, rectClient.CenterPoint().y));

   // Restore the previous pen.
   pDC->SelectObject(pOldPen);
}

CDC::PlayMetaFile

Spelar upp innehållet i den angivna metafilen i enhetskontexten.

BOOL PlayMetaFile(HMETAFILE hMF);

BOOL PlayMetaFile(
    HENHMETAFILE hEnhMetaFile,
    LPCRECT lpBounds);

Parameters

hMF
Identifierar metafilen som ska spelas upp.

hEnhMetaFile
Identifierar den förbättrade metafilen.

lpBounds
Pekar på en RECT struktur eller ett CRect objekt som innehåller koordinaterna för den avgränsningsrektangel som används för att visa bilden. Koordinaterna anges i logiska enheter.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Metafilen kan spelas upp valfritt antal gånger.

Den andra versionen av PlayMetaFile visar den bild som lagras i den angivna metafilen i utökat format. När ett program anropar den andra versionen av PlayMetaFileanvänder Windows bildramen i rubriken enhanced-metafile för att mappa bilden till rektangeln som pekas på av parametern lpBounds . (Den här bilden kan klippas eller roteras genom att ställa in världstransformering i utdataenheten innan den anropar PlayMetaFile.) Punkter längs rektangelns kanter ingår i bilden. Du kan klippa ut en bild med förbättrad metafil genom att definiera urklippsregionen i utdataenheten innan du spelar upp den förbättrade metafilen.

Om en förbättrad metafil innehåller en valfri palett kan ett program uppnå konsekventa färger genom att konfigurera en färgpalett på utdataenheten innan den andra versionen av anropas PlayMetaFile. Om du vill hämta den valfria paletten använder du Windows-funktionen GetEnhMetaFilePaletteEntries . En förbättrad metafil kan bäddas in i en nyligen skapad förbättrad metafil genom att anropa den andra versionen av PlayMetaFile och spela upp den förbättrade metafilen för källan i enhetskontexten för den nya förbättrade metafilen.

Tillstånden för utdataenhetskontexten bevaras av den här funktionen. Alla objekt som skapats men inte tagits bort i den förbättrade metafilen tas bort av den här funktionen. För att stoppa den här funktionen kan ett program anropa CancelDC Windows-funktionen från en annan tråd för att avsluta åtgärden. I det här fallet returnerar funktionen noll.

CDC::PlgBlt

Utför en bitblocksöverföring av bitar av färgdata från den angivna rektangeln i källenhetskontexten till det angivna parallellogrammet i den angivna enhetskontexten.

BOOL PlgBlt(
    LPPOINT lpPoint,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nWidth,
    int nHeight,
    CBitmap& maskBitmap,
    int xMask,
    int yMask);

Parameters

lpPoint
Pekar på en matris med tre punkter i det logiska utrymmet som identifierar tre hörn av målparallellogrammet. Det övre vänstra hörnet i källrektangeln mappas till den första punkten i den här matrisen, det övre högra hörnet till den andra punkten i den här matrisen och det nedre vänstra hörnet till den tredje punkten. Det nedre högra hörnet i källrektangeln mappas till den implicita fjärde punkten i parallellogrammet.

pSrcDC
Identifierar källenhetskontexten.

xSrc
Anger x-koordinaten i logiska enheter i det övre vänstra hörnet i källrektangeln.

ySrc
Anger y-koordinaten i logiska enheter i det övre vänstra hörnet av källrektangeln.

nWidth
Anger bredden i logiska enheter för källrektangeln.

nHeight
Anger höjden, i logiska enheter, på källrektangeln.

maskBitmap
Identifierar en valfri monokrom bitmapp som används för att maskera färgerna i källrektangeln.

xMask
Anger x-koordinaten för det övre vänstra hörnet i den monokroma bitmappen.

yMask
Anger y-koordinaten för det övre vänstra hörnet i den monokroma bitmappen.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Om det angivna bitmaskhandtaget identifierar en giltig monokrom bitmapp använder funktionen den här bitmappen för att maskera bitarna av färgdata från källrektangeln.

Det fjärde hörnet av parallellogrammet (D) definieras genom att behandla de tre första punkterna (A, B och C) som vektorer och databehandling D = B + C - A.

Om bitmasken finns anger värdet 1 i masken att källpixelfärgen ska kopieras till målet. Värdet 0 i masken anger att målpixelfärgen inte ska ändras.

Om maskrektangeln är mindre än käll- och målrektanglarna replikerar funktionen maskmönstret.

Skalnings-, översättnings- och reflektionstransformeringar tillåts i källenhetskontexten. Rotations- och sk sheartransformationer är dock inte det. Om maskbitmappen inte är en monokrom bitmapp uppstår ett fel. Stretching-läget för målenhetskontexten används för att fastställa hur pixlarna ska sträckas ut eller komprimeras, om det behövs. När en utökad metafil registreras uppstår ett fel om källenhetskontexten identifierar en utökad metafilenhetskontext.

Målkoordinaterna transformeras enligt målenhetskontexten. källkoordinaterna transformeras enligt källenhetskontexten. Om källomvandlingen har en rotation eller sk shear returneras ett fel. Om mål- och källrektanglarna inte har samma färgformat PlgBlt konverterar källrektangeln så att den matchar målrektangeln. Alla enheter stöder PlgBltinte . Mer information finns i beskrivningen RC_BITBLT av rasterfunktionen i CDC::GetDeviceCaps medlemsfunktionen.

Om käll- och målenhetskontexterna representerar inkompatibla enheter PlgBlt returnerar ett fel.

CDC::PolyBezier

Ritar en eller flera Bzier-splines.

BOOL PolyBezier(
    const POINT* lpPoints,
    int nCount);

Parameters

lpPoints
Pekar på en matris med POINT datastrukturer som innehåller slutpunkterna och kontrollpunkterna för splines.

nCount
Anger antalet punkter i matrisen lpPoints . Det här värdet måste vara en mer än tre gånger så många splines som ska ritas, eftersom varje Bzier-spline kräver två kontrollpunkter och en slutpunkt, och den inledande spline kräver en annan startpunkt.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Den här funktionen ritar kubik-Bzier-splines med hjälp av de slutpunkter och kontrollpunkter som anges av parametern lpPoints . Den första spline dras från den första punkten till den fjärde punkten genom att använda den andra och tredje punkten som kontrollpunkter. Varje efterföljande spline i sekvensen behöver exakt tre punkter till: slutpunkten för den föregående spline används som startpunkt, nästa två punkter i sekvensen är kontrollpunkter och den tredje är slutpunkten.

Den aktuella positionen används inte eller uppdateras inte av PolyBezier funktionen. Figuren är inte fylld. Den här funktionen ritar linjer med hjälp av den aktuella pennan.

CDC::PolyBezierTo

Ritar en eller flera Bzier-splines.

BOOL PolyBezierTo(
    const POINT* lpPoints,
    int nCount);

Parameters

lpPoints
Pekar på en matris med POINT datastrukturer som innehåller slutpunkter och kontrollpunkter.

nCount
Anger antalet punkter i matrisen lpPoints . Det här värdet måste vara tre gånger så många splines som ska ritas, eftersom varje Bzier-spline kräver två kontrollpunkter och en slutpunkt.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Den här funktionen ritar kubiska Bzier-splines med hjälp av de kontrollpunkter som anges av parametern lpPoints . Den första spline dras från den aktuella positionen till den tredje punkten med hjälp av de två första punkterna som kontrollpunkter. För varje efterföljande spline behöver funktionen exakt tre punkter till och använder slutpunkten för föregående spline som startpunkt för nästa. PolyBezierTo flyttar den aktuella positionen till slutpunkten för den sista Bzier-spline. Figuren är inte fylld. Den här funktionen ritar linjer med hjälp av den aktuella pennan.

Example

Se exemplet för CDC::BeginPath.

CDC::PolyDraw

Ritar en uppsättning linjesegment och Bzier-splines.

BOOL PolyDraw(
    const POINT* lpPoints,
    const BYTE* lpTypes,
    int nCount);

Parameters

lpPoints
Pekar på en matris med POINT datastrukturer som innehåller slutpunkterna för varje linjesegment och slutpunkterna och kontrollpunkterna för varje Bzier-spline.

lpTypes
Pekar på en matris som anger hur varje punkt i matrisen lpPoints används. Värden kan vara något av följande:

  • PT_MOVETO Anger att den här punkten startar en osammanhängande bild. Den här punkten blir den nya aktuella positionen.

  • PT_LINETO Anger att en rad ska dras från den aktuella positionen till den här punkten, som sedan blir den nya aktuella positionen.

  • PT_BEZIERTO Anger att den här punkten är en kontrollpunkt eller slutpunkt för en Bzier-spline.

PT_BEZIERTO förekommer alltid i uppsättningar med tre. Den aktuella positionen definierar startpunkten för Bzier-spline. De första två PT_BEZIERTO punkterna är kontrollpunkterna och den tredje PT_BEZIERTO punkten är slutpunkten. Slutpunkten blir den nya aktuella positionen. Om det inte finns tre på varandra följande PT_BEZIERTO punkter resulterar ett fel.

En PT_LINETO eller PT_BEZIERTO en typ kan kombineras med följande konstant genom att använda bitvisoperatorn ELLER för att indikera att motsvarande punkt är den sista punkten i en bild och att figuren är stängd:

  • PT_CLOSEFIGURE Anger att figuren stängs automatiskt när PT_LINETO eller-typen PT_BEZIERTO för den här punkten är klar. En linje dras från den här punkten till den senaste eller MoveTo den senaste PT_MOVETO punkten.

    Den här flaggan kombineras med PT_LINETO typen för en linje, eller med PT_BEZIERTO typen av slutpunkt för en Bzier-spline, med hjälp av bitvis OR-operatorn . Den aktuella positionen är inställd på slutpunkten för den avslutande raden.

nCount
Anger det totala antalet punkter i matrisen lpPoints , samma som antalet byte i matrisen lpTypes .

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Den här funktionen kan användas för att rita olika siffror i stället för efterföljande anrop till CDC::MoveTo, CDC::LineTooch CDC::PolyBezierTo medlemsfunktioner. Linjerna och splines ritas med den aktuella pennan och figurerna fylls inte. Om det finns en aktiv sökväg som startas genom att anropa CDC::BeginPath medlemsfunktionen PolyDraw lägger du till i sökvägen. Punkterna i matrisen lpPoints och anger lpTypes om varje punkt är en del av en CDC::MoveTo, en CDC::LineToeller en CDC::BezierTo åtgärd. Det är också möjligt att stänga siffror. Den här funktionen uppdaterar den aktuella positionen.

Example

Se exemplet för CDC::BeginPath.

CDC::Polygon

Ritar en polygon som består av två eller flera punkter (hörn) som är anslutna med linjer med hjälp av den aktuella pennan.

BOOL Polygon(
    LPPOINT lpPoints,
    int nCount);

Parameters

lpPoints
Pekar på en matris med punkter som anger polygonens hörn. Varje punkt i matrisen är en POINT struktur eller ett CPoint objekt.

nCount
Anger antalet hörn i matrisen.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Systemet stänger polygonen automatiskt, om det behövs, genom att rita en linje från det sista hörnet till det första.

Det aktuella polygonfyllningsläget kan hämtas eller ställas in med hjälp av medlemsfunktionerna GetPolyFillMode och SetPolyFillMode .

Example

void CDCView::DrawPolygon(CDC *pDC)
{
   // find the client area
   CRect rect;
   GetClientRect(rect);

   // draw with a thick blue pen
   CPen penBlue(PS_SOLID, 5, RGB(0, 0, 255));
   CPen *pOldPen = pDC->SelectObject(&penBlue);

   // and a solid red brush
   CBrush brushRed(RGB(255, 0, 0));
   CBrush *pOldBrush = pDC->SelectObject(&brushRed);

   // Find the midpoints of the top, right, left, and bottom
   // of the client area. They will be the vertices of our polygon.
   CPoint pts[4];
   pts[0].x = rect.left + rect.Width() / 2;
   pts[0].y = rect.top;

   pts[1].x = rect.right;
   pts[1].y = rect.top + rect.Height() / 2;

   pts[2].x = pts[0].x;
   pts[2].y = rect.bottom;

   pts[3].x = rect.left;
   pts[3].y = pts[1].y;

   // Calling Polygon() on that array will draw three lines
   // between the points, as well as an additional line to
   // close the shape--from the last point to the first point
   // we specified.
   pDC->Polygon(pts, 4);

   // Put back the old objects.
   pDC->SelectObject(pOldPen);
   pDC->SelectObject(pOldBrush);
}

CDC::Polyline

Ritar en uppsättning linjesegment som ansluter de punkter som anges av lpPoints.

BOOL Polyline(
    LPPOINT lpPoints,
    int nCount);

Parameters

lpPoints
Pekar på en matris med POINT strukturer eller CPoint objekt som ska anslutas.

nCount
Anger antalet punkter i matrisen. Det här värdet måste vara minst 2.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Linjerna dras från den första punkten genom efterföljande punkter med hjälp av den aktuella pennan. LineTo Till skillnad från medlemsfunktionen Polyline använder eller uppdaterar inte funktionen den aktuella positionen.

Mer information PolyLine finns i Windows SDK.

CDC::PolylineTo

Ritar en eller flera raka linjer.

BOOL PolylineTo(
    const POINT* lpPoints,
    int nCount);

Parameters

lpPoints
Pekar på en matris med POINT datastrukturer som innehåller hörnen på raden.

nCount
Anger antalet punkter i matrisen.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

En linje ritas från den aktuella positionen till den första punkten som anges av parametern lpPoints med hjälp av den aktuella pennan. För varje ytterligare rad ritar funktionen från slutpunkten för föregående rad till nästa punkt som anges av lpPoints. PolylineTo flyttar den aktuella positionen till slutpunkten för den sista raden. Om linjesegmenten som ritas av den här funktionen utgör en sluten figur fylls inte figuren.

CDC::PolyPolygon

Skapar två eller flera polygoner som fylls med det aktuella polygonfyllningsläget.

BOOL PolyPolygon(
    LPPOINT lpPoints,
    LPINT lpPolyCounts,
    int nCount);

Parameters

lpPoints
Pekar på en matris med POINT strukturer eller CPoint objekt som definierar polygonernas hörn.

lpPolyCounts
Pekar på en matris med heltal, som var och en anger antalet punkter i en av polygonerna i matrisen lpPoints .

nCount
Antalet poster i matrisen lpPolyCounts . Det här talet anger antalet polygoner som ska ritas. Det här värdet måste vara minst 2.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Polygonerna kan vara uppdelade eller överlappande.

Varje polygon som anges i ett anrop till PolyPolygon funktionen måste stängas. Till skillnad från polygoner som skapats av Polygon medlemsfunktionen stängs inte de polygoner som skapas av PolyPolygon automatiskt.

Funktionen skapar två eller flera polygoner. För att skapa en enda polygon bör ett program använda Polygon medlemsfunktionen.

Det aktuella polygonfyllningsläget kan hämtas eller ställas in med hjälp av medlemsfunktionerna GetPolyFillMode och SetPolyFillMode .

CDC::PolyPolyline

Ritar flera serier med anslutna linjesegment.

BOOL PolyPolyline(
    const POINT* lpPoints,
    const DWORD* lpPolyPoints,
    int nCount);

Parameters

lpPoints
Pekar på en matris med strukturer som innehåller hörnen i polylinjerna. Polylinjerna anges i följd.

lpPolyPoints
Pekar på en matris med variabler som anger antalet punkter i matrisen lpPoints för motsvarande polygon. Varje post måste vara större än eller lika med 2.

nCount
Anger det totala antalet antal i matrisen lpPolyPoints .

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Linjesegmenten ritas med hjälp av den aktuella pennan. De siffror som skapas av segmenten är inte fyllda. Den aktuella positionen används inte eller uppdateras inte av den här funktionen.

CDC::PtVisible

Avgör om den angivna punkten ligger inom urklippsregionen i enhetskontexten.

virtual BOOL PtVisible(
    int x,
    int y) const;

BOOL PtVisible(POINT point) const;

Parameters

x
Anger punktens logiska x-koordinat.

y
Anger punktens logiska y-koordinat.

point
Anger punkten för att checka in logiska koordinater. Du kan skicka antingen en POINT struktur eller ett CPoint objekt för den här parametern.

Return Value

Nonzero om den angivna punkten ligger inom urklippsregionen. annars 0.

CDC::QueryAbort

Anropar funktionen Abort som installerats av SetAbortProc medlemsfunktionen för ett utskriftsprogram och frågar om utskriften ska avslutas.

BOOL QueryAbort() const;

Return Value

Returvärdet är inte noll om utskriften ska fortsätta eller om det inte finns någon avbruten procedur. Det är 0 om utskriftsjobbet ska avslutas. Returvärdet anges av funktionen abort.

CDC::RealizePalette

Mappar poster från den aktuella logiska paletten till systempaletten.

UINT RealizePalette();

Return Value

Anger hur många poster i den logiska paletten som mappades till olika poster i systempaletten. Detta representerar antalet poster som den här funktionen mappade om för att anpassa ändringar i systempaletten sedan den logiska paletten senast realiserades.

Remarks

En logisk färgpalett fungerar som en buffert mellan färgintensiva program och systemet, vilket gör att ett program kan använda så många färger som behövs utan att störa sina egna färger eller med färger som visas av andra fönster.

När ett fönster har indatafokus och anrop RealizePaletteser Windows till att fönstret visar alla begärda färger, upp till det maximala antal som är tillgängligt samtidigt på skärmen. Windows visar också färger som inte hittas i fönstrets palett genom att matcha dem med tillgängliga färger.

Dessutom matchar Windows de färger som begärs av inaktiva fönster som anropar funktionen så nära de tillgängliga färgerna som möjligt. Detta minskar avsevärt oönskade ändringar i färgerna som visas i inaktiva fönster.

CDC::Rectangle

Ritar en rektangel med den aktuella pennan.

BOOL Rectangle(
    int x1,
    int y1,
    int x2,
    int y2);

BOOL Rectangle(LPCRECT lpRect);

Parameters

x1
Anger x-koordinaten för det övre vänstra hörnet i rektangeln (i logiska enheter).

y1
Anger y-koordinaten för det övre vänstra hörnet i rektangeln (i logiska enheter).

x2
Anger x-koordinaten för det nedre högra hörnet i rektangeln (i logiska enheter).

y2
Anger y-koordinaten för det nedre högra hörnet i rektangeln (i logiska enheter).

lpRect
Anger rektangeln i logiska enheter. Du kan skicka antingen ett CRect objekt eller en pekare till en RECT struktur för den här parametern.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Den inre rektangeln fylls med den aktuella borsten.

Rektangeln sträcker sig upp till, men inkluderar inte, koordinaterna till höger och längst ned. Det innebär att rektangelns höjd är y2 - y1 och att rektangelns bredd är .x2 - x1 Både bredden och höjden på en rektangel måste vara större än 2 enheter och mindre än 32 767 enheter.

Example

void CDCView::DrawRectangle(CDC *pDC)
{
   // create and select a solid blue brush
   CBrush brushBlue(RGB(0, 0, 255));
   CBrush *pOldBrush = pDC->SelectObject(&brushBlue);

   // create and select a thick, black pen
   CPen penBlack;
   penBlack.CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
   CPen *pOldPen = pDC->SelectObject(&penBlack);

   // get our client rectangle
   CRect rect;
   GetClientRect(rect);

   // shrink our rect 20 pixels in each direction
   rect.DeflateRect(20, 20);

   // draw a thick black rectangle filled with blue
   pDC->Rectangle(rect);

   // put back the old objects
   pDC->SelectObject(pOldBrush);
   pDC->SelectObject(pOldPen);
}

CDC::RectVisible

Avgör om någon del av den angivna rektangeln ligger inom urklippsregionen i visningskontexten.

virtual BOOL RectVisible(LPCRECT lpRect) const;

Parameters

lpRect
Pekar på en RECT struktur eller ett CRect objekt som innehåller de logiska koordinaterna för den angivna rektangeln.

Return Value

Nonzero om någon del av den angivna rektangeln ligger inom urklippsregionen; annars 0.

CDC::ReleaseAttribDC

Anropa den här medlemsfunktionen för att ställa in m_hAttribDC på NULL.

virtual void ReleaseAttribDC();

Remarks

Detta orsakar inte att en Detach inträffar. Endast utdataenhetskontexten CDC är kopplad till objektet och endast det kan kopplas från.

CDC::ReleaseOutputDC

Anropa den här medlemsfunktionen för att ange m_hDC medlemmen till NULL.

virtual void ReleaseOutputDC();

Remarks

Den här medlemsfunktionen kan inte anropas när utdataenhetskontexten CDC är kopplad till objektet. Detach Använd medlemsfunktionen för att koppla från utdataenhetskontexten.

CDC::ResetDC

Anropa den här medlemsfunktionen för att uppdatera enhetskontexten CDC som omsluts av objektet.

BOOL ResetDC(const DEVMODE* lpDevMode);

Parameters

lpDevMode
En pekare till en Windows-struktur DEVMODE .

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Enhetskontexten uppdateras från den information som anges i Windows-strukturen DEVMODE . Den här medlemsfunktionen återställer endast attributenhetskontexten.

Ett program använder ResetDC vanligtvis medlemsfunktionen när ett fönster bearbetar ett WM_DEVMODECHANGE meddelande. Du kan också använda den här medlemsfunktionen för att ändra pappersorienteringen eller pappersfacket när du skriver ut ett dokument.

Du kan inte använda den här medlemsfunktionen för att ändra drivrutinsnamn, enhetsnamn eller utdataport. När användaren ändrar portanslutningen eller enhetsnamnet måste du ta bort den ursprungliga enhetskontexten och skapa en ny enhetskontext med den nya informationen.

Innan du anropar den här medlemsfunktionen måste du se till att alla objekt (förutom lagerobjekt) som har valts i enhetskontexten har valts ut.

CDC::RestoreDC

Återställer enhetskontexten till det tidigare tillstånd som identifierades av nSavedDC.

virtual BOOL RestoreDC(int nSavedDC);

Parameters

nSavedDC
Anger den enhetskontext som ska återställas. Det kan vara ett värde som returneras av ett tidigare SaveDC funktionsanrop. Om nSavedDC är -1 återställs den senast sparade enhetskontexten.

Return Value

Nonzero om den angivna kontexten återställdes; annars 0.

Remarks

RestoreDC återställer enhetskontexten genom att visa tillståndsinformation från en stack som skapats av tidigare anrop till SaveDC medlemsfunktionen.

Stacken kan innehålla tillståndsinformation för flera enhetskontexter. Om kontexten som anges av nSavedDC inte finns överst i stacken RestoreDC tar du bort all tillståndsinformation mellan enhetskontexten som anges av nSavedDC och överst i stacken. Den borttagna informationen går förlorad.

CDC::RoundRect

Ritar en rektangel med rundade hörn med den aktuella pennan.

BOOL RoundRect(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3);

BOOL RoundRect(
    LPCRECT lpRect,
    POINT point);

Parameters

x1
Anger x-koordinaten för det övre vänstra hörnet i rektangeln (i logiska enheter).

y1
Anger y-koordinaten för det övre vänstra hörnet i rektangeln (i logiska enheter).

x2
Anger x-koordinaten för det nedre högra hörnet i rektangeln (i logiska enheter).

y2
Anger y-koordinaten för det nedre högra hörnet i rektangeln (i logiska enheter).

x3
Anger bredden på den ellips som används för att rita de rundade hörnen (i logiska enheter).

y3
Anger höjden på den ellips som används för att rita de rundade hörnen (i logiska enheter).

lpRect
Anger rektangeln för avgränsning i logiska enheter. Du kan skicka antingen ett CRect objekt eller en pekare till en RECT struktur för den här parametern.

point
X-koordinaten point för anger bredden på ellipsen för att rita de rundade hörnen (i logiska enheter). Y-koordinaten point för anger höjden på ellipsen för att rita de rundade hörnen (i logiska enheter). Du kan skicka antingen en POINT struktur eller ett CPoint objekt för den här parametern.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Den inre rektangeln fylls med den aktuella borsten.

Bilden som den här funktionen ritar sträcker sig upp till men innehåller inte koordinaterna till höger och längst ned. Det innebär att figurens höjd är y2 - y1 och att bildens bredd är .x2 - x1 Både höjden och bredden på avgränsningsrektangeln måste vara större än 2 enheter och mindre än 32 767 enheter.

Example

void CDCView::DrawRoundRect(CDC *pDC)
{
   // create and select a solid blue brush
   CBrush brushBlue(RGB(0, 0, 255));
   CBrush *pOldBrush = pDC->SelectObject(&brushBlue);

   // create and select a thick, black pen
   CPen penBlack;
   penBlack.CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
   CPen *pOldPen = pDC->SelectObject(&penBlack);

   // get our client rectangle
   CRect rect;
   GetClientRect(rect);

   // shrink our rect 20 pixels in each direction
   rect.DeflateRect(20, 20);

   // Draw a thick black rectangle filled with blue
   // corners rounded at a 17-unit radius. Note that
   // a radius of three or less is not noticeable because
   // the pen is three units wide.
   pDC->RoundRect(rect, CPoint(17, 17));

   // put back the old objects
   pDC->SelectObject(pOldBrush);
   pDC->SelectObject(pOldPen);
}

CDC::SaveDC

Sparar det aktuella tillståndet för enhetskontexten genom att kopiera tillståndsinformation (till exempel urklippsregion, markerade objekt och mappningsläge) till en kontextstack som underhålls av Windows.

virtual int SaveDC();

Return Value

Ett heltal som identifierar den sparade enhetskontexten. Det är 0 om ett fel inträffar. Det här returvärdet kan användas för att återställa enhetskontexten genom att anropa RestoreDC.

Remarks

Den sparade enhetskontexten kan senare återställas med hjälp RestoreDCav .

SaveDC kan användas valfritt antal gånger för att spara valfritt antal enhetskontexttillstånd.

CDC::ScaleViewportExt

Ändrar visningsportens omfattningar i förhållande till de aktuella värdena.

virtual CSize ScaleViewportExt(
    int xNum,
    int xDenom,
    int yNum,
    int yDenom);

Parameters

xNum
Anger hur mycket du vill multiplicera den aktuella x-omfattningen med.

xDenom
Anger hur mycket du vill dela upp resultatet av att multiplicera den aktuella x-omfattningen med värdet för parametern xNum .

yNum
Anger hur mycket du vill multiplicera den aktuella y-omfattningen med.

yDenom
Anger hur mycket du vill dividera resultatet av att multiplicera den aktuella y-omfattningen med värdet för parametern yNum .

Return Value

De tidigare viewport-omfattningarna (i enhetsenheter) som ett CSize objekt.

Remarks

Formlerna skrivs på följande sätt:

xNewVE = ( xOldVE * xNum ) / xDenom

yNewVE = ( yOldVE * yNum ) / yDenom

De nya visningsportsutbredningarna beräknas genom att de aktuella omfattningarna multipliceras med den angivna täljaren och sedan divideras med den angivna nämnaren.

CDC::ScaleWindowExt

Ändrar fönstrets omfattningar i förhållande till de aktuella värdena.

virtual CSize ScaleWindowExt(
    int xNum,
    int xDenom,
    int yNum,
    int yDenom);

Parameters

xNum
Anger hur mycket du vill multiplicera den aktuella x-omfattningen med.

xDenom
Anger hur mycket du vill dela upp resultatet av att multiplicera den aktuella x-omfattningen med värdet för parametern xNum .

yNum
Anger hur mycket du vill multiplicera den aktuella y-omfattningen med.

yDenom
Anger hur mycket du vill dividera resultatet av att multiplicera den aktuella y-omfattningen med värdet för parametern yNum .

Return Value

Föregående fönsterutrymmen (i logiska enheter) som ett CSize objekt.

Remarks

Formlerna skrivs på följande sätt:

xNewWE = ( xOldWE * xNum ) / xDenom

yNewWE = ( yOldWE * yNum ) / yDenom

De nya fönsteromfången beräknas genom att de aktuella omfattningarna multipliceras med den angivna täljaren och sedan divideras med den angivna nämnaren.

CDC::ScrollDC

Rullar en rektangel med bitar vågrätt och lodrätt.

BOOL ScrollDC(
    int dx,
    int dy,
    LPCRECT lpRectScroll,
    LPCRECT lpRectClip,
    CRgn* pRgnUpdate,
    LPRECT lpRectUpdate);

Parameters

dx
Anger antalet vågräta rullningsenheter.

dy
Anger antalet lodräta rullningsenheter.

lpRectScroll
Pekar på den RECT struktur eller CRect det objekt som innehåller koordinaterna för den rullande rektangeln.

lpRectClip
Pekar på strukturen RECT eller CRect objektet som innehåller koordinaterna för urklippsrektangeln. När den här rektangeln är mindre än den ursprungliga som pekas på av lpRectScroll, sker rullning endast i den mindre rektangeln.

pRgnUpdate
Identifierar regionen som upptäckts av rullningsprocessen. Funktionen definierar den här regionen. Den ScrollDC är inte nödvändigtvis en rektangel.

lpRectUpdate
Pekar på den RECT struktur eller CRect det objekt som tar emot koordinaterna för den rektangel som begränsar rullningsuppdateringsregionen. Detta är det största rektangulära området som kräver ommålning. Värdena i strukturen eller objektet när funktionen returnerar finns i klientkoordinater, oavsett mappningsläge för den angivna enhetskontexten.

Return Value

Nonzero om rullning körs; annars 0.

Remarks

Om lpRectUpdate är NULLberäknar Inte Windows uppdateringsrektangeln. Om både pRgnUpdate och lpRectUpdate är NULLberäknar Inte Windows uppdateringsregionen. Om pRgnUpdate inte NULL, förutsätter Windows att den innehåller en giltig pekare till regionen som upptäckts av rullningsprocessen (definieras av ScrollDC medlemsfunktionen). Uppdateringsregionen som returneras lpRectUpdate kan skickas till CWnd::InvalidateRgn om det behövs.

Ett program bör använda ScrollWindow medlemsfunktionen i klassen CWnd när det är nödvändigt att rulla hela klientområdet i ett fönster. Annars bör den använda ScrollDC.

CDC::SelectClipPath

Väljer den aktuella sökvägen som en urklippsregion för enhetskontexten och kombinerar den nya regionen med alla befintliga urklippsregioner med hjälp av det angivna läget.

BOOL SelectClipPath(int nMode);

Parameters

nMode
Anger hur sökvägen ska användas. Följande värden tillåts:

  • RGN_AND Den nya urklippsregionen innehåller skärningspunkten (överlappande områden) i den aktuella urklippsregionen och den aktuella sökvägen.

  • RGN_COPY Den nya urklippsregionen är den aktuella sökvägen.

  • RGN_DIFF Den nya urklippsregionen innehåller områdena i den aktuella urklippsregionen och de i den aktuella sökvägen undantas.

  • RGN_OR Den nya urklippsregionen innehåller unionen (kombinerade områden) för den aktuella urklippsregionen och den aktuella sökvägen.

  • RGN_XOR Den nya urklippsregionen innehåller union av den aktuella urklippsregionen och den aktuella sökvägen, men utan överlappande områden.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Enhetskontexten som identifieras måste innehålla en stängd sökväg.

CDC::SelectClipRgn

Väljer den angivna regionen som aktuell urklippsregion för enhetskontexten.

int SelectClipRgn(CRgn* pRgn);

int SelectClipRgn(
    CRgn* pRgn,
    int nMode);

Parameters

pRgn
Identifierar den region som ska väljas.

  • För den första versionen av den här funktionen, om det här värdet är NULL, markeras hela klientområdet och utdata klipps fortfarande till fönstret.

  • För den andra versionen av den här funktionen kan det här handtaget bara vara NULL när RGN_COPY läget har angetts.

nMode
Anger vilken åtgärd som ska utföras. Det måste vara något av följande värden:

  • RGN_AND Den nya urklippsregionen kombinerar de överlappande områdena i den aktuella urklippsregionen och den region som identifieras av pRgn.

  • RGN_COPY Den nya urklippsregionen är en kopia av den region som identifieras av pRgn. Det här är en funktion som är identisk med den första versionen av SelectClipRgn. Om den region som identifieras av pRgn är NULLblir den nya urklippsregionen standardutklippsregionen (en null-region).

  • RGN_DIFF Den nya urklippsregionen kombinerar områdena i den aktuella urklippsregionen med de områden som är undantagna från den region som identifieras av pRgn.

  • RGN_OR Den nya urklippsregionen kombinerar den aktuella urklippsregionen och den region som identifieras av pRgn.

  • RGN_XOR Den nya urklippsregionen kombinerar den aktuella urklippsregionen och den region som identifieras av pRgn men exkluderar eventuella överlappande områden.

Return Value

Regionens typ. Det kan vara något av följande värden:

  • COMPLEXREGION Den nya urklippsregionen har överlappande kantlinjer.

  • ERROR Enhetskontexten eller regionen är inte giltig.

  • NULLREGION Den nya urklippsregionen är tom.

  • SIMPLEREGION Den nya urklippsregionen har inga överlappande kantlinjer.

Remarks

Endast en kopia av den valda regionen används. Själva regionen kan väljas för valfritt antal andra enhetskontexter, eller så kan den tas bort.

Funktionen förutsätter att koordinaterna för den angivna regionen anges i enhetsenheter. Vissa skrivarenheter stöder textutdata med högre upplösning än grafikutdata för att behålla den precision som krävs för att uttrycka textmått. Dessa enheter rapporterar enhetsenheter med högre upplösning, dvs. i textenheter. Dessa enheter skalar sedan koordinater för grafik så att flera rapporterade enhetsenheter mappas till endast 1 grafisk enhet. Du bör alltid anropa SelectClipRgn funktionen med hjälp av textenheter.

Program som måste skala grafikobjekt i GDI kan använda GETSCALINGFACTOR skrivaren escape för att fastställa skalningsfaktorn. Den här skalningsfaktorn påverkar urklipp. Om en region används för att klippa ut grafik delar GDI koordinaterna med skalningsfaktorn. Om regionen används för att klippa ut text gör GDI ingen skalningsjustering. En skalningsfaktor på 1 gör att koordinaterna divideras med 2. En skalningsfaktor på 2 gör att koordinaterna divideras med 4. och så vidare.

CDC::SelectObject

Markerar ett objekt i enhetskontexten.

CPen* SelectObject(CPen* pPen);
CBrush* SelectObject(CBrush* pBrush);
virtual CFont* SelectObject(CFont* pFont);
CBitmap* SelectObject(CBitmap* pBitmap);
int SelectObject(CRgn* pRgn);
CGdiObject* SelectObject(CGdiObject* pObject);

Parameters

pPen
En pekare till ett CPen objekt som ska väljas.

pBrush
En pekare till ett CBrush objekt som ska väljas.

pFont
En pekare till ett CFont objekt som ska väljas.

pBitmap
En pekare till ett CBitmap objekt som ska väljas.

pRgn
En pekare till ett CRgn objekt som ska väljas.

pObject
En pekare till ett CGdiObject objekt som ska väljas.

Return Value

En pekare till objektet som ersätts. Det här är en pekare till ett objekt i en av klasserna som härleds från CGdiObject, till exempel CPen, beroende på vilken version av funktionen som används. Returvärdet är NULL om det finns ett fel. Den här funktionen kan returnera en pekare till ett tillfälligt objekt. Det här temporära objektet är endast giltigt under bearbetningen av ett Windows-meddelande. Mer information finns i CGdiObject::FromHandle.

Den version av medlemsfunktionen som tar en regionparameter utför samma uppgift som SelectClipRgn medlemsfunktionen. Dess returvärde kan vara något av följande:

  • COMPLEXREGION Den nya urklippsregionen har överlappande kantlinjer.

  • ERROR Enhetskontexten eller regionen är inte giltig.

  • NULLREGION Den nya urklippsregionen är tom.

  • SIMPLEREGION Den nya urklippsregionen har inga överlappande kantlinjer.

Remarks

Klassen CDC innehåller fem versioner som är specialiserade för vissa typer av GDI-objekt, inklusive pennor, penslar, teckensnitt, bitmappar och regioner. Det nyligen markerade objektet ersätter det tidigare objektet av samma typ. Om pObject till exempel den allmänna versionen av SelectObject pekar på ett CPen objekt ersätter funktionen den aktuella pennan med pennan som anges av pObject.

Ett program kan bara välja en bitmapp i minnesenhetskontexter och i endast en minnesenhetskontext i taget. Bitmappens format måste antingen vara monokromt eller kompatibelt med enhetskontexten. om det inte är det returnerar SelectObject ett fel.

För Windows 3.1 och senare SelectObject returnerar funktionen samma värde oavsett om den används i en metafil eller inte. Under tidigare versioner av Windows SelectObject returnerade ett icke-nollvärde för framgång och 0 för fel när det användes i en metafil.

CDC::SelectPalette

Väljer den logiska palett som anges av pPalette som det valda paletteobjektet i enhetskontexten.

CPalette* SelectPalette(
    CPalette* pPalette,
    BOOL bForceBackground);

Parameters

pPalette
Identifierar den logiska palett som ska väljas. Den här paletten måste redan ha skapats med CPalette medlemsfunktionen CreatePalette.

bForceBackground
Anger om den logiska paletten tvingas vara en bakgrundspalett. Om bForceBackground är nonzero är den valda paletten alltid en bakgrundspalett, oavsett om fönstret har indatafokus. Om bForceBackground är 0 och enhetskontexten är kopplad till ett fönster är den logiska paletten en förgrundspalett när fönstret har indatafokus.

Return Value

En pekare till ett CPalette objekt som identifierar den logiska paletten som ersätts av den palett som anges av pPalette. Det är NULL om det finns ett fel.

Remarks

Den nya paletten blir det palettobjekt som används av GDI för att styra färger som visas i enhetskontexten och ersätter den föregående paletten.

Ett program kan välja en logisk palett i mer än en enhetskontext. Ändringar i en logisk palett påverkar dock alla enhetskontexter som den har valts för. Om ett program väljer en palett i mer än en enhetskontext måste alla enhetskontexter tillhöra samma fysiska enhet.

CDC::SelectStockObject

Markerar ett CGdiObject objekt som motsvarar en av de fördefinierade stockpennorna, penslar eller teckensnitt.

virtual CGdiObject* SelectStockObject(int nIndex);

Parameters

nIndex
Anger vilken typ av lagerobjekt som önskas. Det kan vara något av följande värden:

  • BLACK_BRUSH Svart borste.

  • DKGRAY_BRUSH Mörkgrå borste.

  • GRAY_BRUSH Grå borste.

  • HOLLOW_BRUSH Ihålig borste.

  • LTGRAY_BRUSH Ljusgrå borste.

  • NULL_BRUSH Null-pensel.

  • WHITE_BRUSH Vit borste.

  • BLACK_PEN Svart penna.

  • NULL_PEN Nullpenna.

  • WHITE_PEN Vit penna.

  • ANSI_FIXED_FONT ANSI-teckensnitt för fast system.

  • ANSI_VAR_FONT ANSI-variabelsystemteckensnitt.

  • DEVICE_DEFAULT_FONT Enhetsberoende teckensnitt.

  • OEM_FIXED_FONT OEM-beroende fast teckensnitt.

  • SYSTEM_FONT Systemteckensnittet. Som standard använder Windows systemteckensnittet för att rita menyer, dialogrutekontroller och annan text. Det är dock bäst att inte förlita sig på SYSTEM_FONT för att få det teckensnitt som används av dialogrutor och fönster. Använd SystemParametersInfo i stället funktionen med parametern SPI_GETNONCLIENTMETRICS för att hämta det aktuella teckensnittet. SystemParametersInfo tar hänsyn till det aktuella temat och innehåller teckensnittsinformation för bildtexter, menyer och meddelandedialogrutor.

  • SYSTEM_FIXED_FONT Systemteckensnittet med fast bredd som användes i Windows före version 3.0. Det här objektet är tillgängligt för kompatibilitet med tidigare versioner av Windows.

  • DEFAULT_PALETTE Standardfärgpalett. Den här paletten består av de 20 statiska färgerna i systempaletten.

Return Value

En pekare till objektet CGdiObject som ersattes om funktionen lyckas. Det faktiska objektet som pekar på är ett CPen, CBrusheller CFont -objekt. Om anropet misslyckas är returvärdet NULL.

CDC::SetAbortProc

Installerar avbruten procedur för utskriftsjobbet.

int SetAbortProc(BOOL (CALLBACK* lpfn)(HDC, int));

Parameters

lpfn
En pekare till funktionen abort som ska installeras som avbruten procedur. Mer information om återanropsfunktionen finns i Återanropsfunktion för CDC::SetAbortProc.

Return Value

Anger resultatet av SetAbortProc funktionen. Några av följande värden är mer sannolika än andra, men alla är möjliga.

  • SP_ERROR Allmänt fel.

  • SP_OUTOFDISK Det finns för närvarande inte tillräckligt med diskutrymme för att spola, och inget mer utrymme blir tillgängligt.

  • SP_OUTOFMEMORY Det finns inte tillräckligt med minne för att spola.

  • SP_USERABORT Användaren avslutade jobbet via Utskriftshanteraren.

Remarks

Om ett program ska tillåta att utskriftsjobbet avbryts under buffring måste det ange funktionen Avbryt innan utskriftsjobbet startas med StartDoc medlemsfunktionen. Utskriftshanteraren anropar funktionen Avbryt under buffring så att programmet kan avbryta utskriftsjobbet eller bearbeta out-of-disk-space-villkor. Om ingen avbruten funktion har angetts misslyckas utskriftsjobbet om det inte finns tillräckligt med diskutrymme för att buffra.

Funktionerna i Microsoft Visual C++ förenklar skapandet av återanropsfunktionen som skickas till SetAbortProc. Adressen som skickas till EnumObjects medlemsfunktionen är en pekare till en funktion som exporteras med __declspec(dllexport) och med anropskonventionen __stdcall .

Du behöver inte heller exportera funktionsnamnet i en EXPORTS -instruktion i programmets moduldefinitionsfil. Du kan i stället använda funktionsmodifieraren EXPORT , som i

BOOL CALLBACK EXPORT AFunction( HDC, int );

för att få kompilatorn att generera rätt exportpost för export med namn utan alias. Detta fungerar för de flesta behov. I vissa specialfall, till exempel när du exporterar en funktion genom att ordningstal eller alias för exporten, måste du fortfarande använda en EXPORTS -instruktion i en moduldefinitionsfil.

Gränssnitten för återanropsregistrering är nu typsäkra (du måste skicka in en funktionspekare som pekar på rätt typ av funktion för den specifika motringningen).

Alla återanropsfunktioner måste fånga Microsoft Foundation-undantag innan de återgår till Windows, eftersom undantag inte kan genereras över motringningsgränser. Mer information om undantag finns i artikeln Undantag.

CDC::SetArcDirection

Anger den ritningsriktning som ska användas för funktioner för båge och rektangel.

int SetArcDirection(int nArcDirection);

Parameters

nArcDirection
Anger den nya bågens riktning. Den här parametern kan vara något av följande värden:

  • AD_COUNTERCLOCKWISE Siffror ritade motsols.

  • AD_CLOCKWISE Figurer ritade medsols.

Return Value

Anger den gamla bågens riktning om den lyckas. annars 0.

Remarks

Standardriktningen är motsols. Funktionen SetArcDirection anger i vilken riktning följande funktioner ritar:

Arc Pie
ArcTo Rectangle
Chord RoundRect
Ellipse

CDC::SetAttribDC

Anropa den här funktionen för att ange attributenhetskontexten, m_hAttribDC.

virtual void SetAttribDC(HDC hDC);

Parameters

hDC
En Windows-enhetskontext.

Remarks

Den här medlemsfunktionen kopplar inte enhetskontexten CDC till objektet. Endast utdataenhetskontexten är kopplad till ett CDC objekt.

CDC::SetBkColor

Anger den aktuella bakgrundsfärgen till den angivna färgen.

virtual COLORREF SetBkColor(COLORREF crColor);

Parameters

crColor
Anger den nya bakgrundsfärgen.

Return Value

Den tidigare bakgrundsfärgen som ett RGB-färgvärde. Om ett fel inträffar är returvärdet 0x80000000.

Remarks

Om bakgrundsläget är OPAQUEanvänder systemet bakgrundsfärgen för att fylla luckorna i formaterade linjer, luckorna mellan kläckta linjer i penslar och bakgrunden i teckenceller. Systemet använder också bakgrundsfärgen när bitmappar konverteras mellan färg- och monokroma enhetskontexter.

Om enheten inte kan visa den angivna färgen anger systemet bakgrundsfärgen till närmaste fysiska färg.

CDC::SetBkMode

Anger bakgrundsläget.

int SetBkMode(int nBkMode);

Parameters

nBkMode
Anger det läge som ska anges. Den här parametern kan vara något av följande värden:

  • OPAQUE Bakgrunden fylls med den aktuella bakgrundsfärgen innan texten, den kläckta penseln eller pennan ritas. Det här är standardläget för bakgrund.

  • TRANSPARENT Bakgrunden ändras inte före ritningen.

Return Value

Föregående bakgrundsläge.

Remarks

Bakgrundsläget definierar om systemet tar bort befintliga bakgrundsfärger på ritytan innan du ritar text, kläckta penslar eller pennformat som inte är en heldragen linje.

Example

Se exemplet för CWnd::OnCtlColor.

CDC::SetBoundsRect

Styr ackumuleringen av information om avgränsningsrektangel för den angivna enhetskontexten.

UINT SetBoundsRect(
    LPCRECT lpRectBounds,
    UINT flags);

Parameters

lpRectBounds
Pekar på en struktur eller CRect ett RECT objekt som används för att ange avgränsningsrektangeln. Rektangeldimensioner anges i logiska koordinater. Den här parametern kan vara NULL.

flags
Anger hur den nya rektangeln ska kombineras med den ackumulerade rektangeln. Den här parametern kan vara en kombination av följande värden:

  • DCB_ACCUMULATE Lägg till rektangeln som anges av i rektangeln för avgränsning lpRectBounds (med hjälp av en rektangel-union-åtgärd).

  • DCB_DISABLE Stäng av bindningsansamlingen.

  • DCB_ENABLE Aktivera bindningsansamling. (Standardinställningen för bindningsansamling är inaktiverad.)

Return Value

Det aktuella tillståndet för avgränsningsrektangeln, om funktionen lyckas. Precis som flagskan returvärdet vara en kombination av DCB_ värden:

  • DCB_ACCUMULATE Rektangeln för avgränsning är inte tom. Det här värdet anges alltid.

  • DCB_DISABLE Bindningsansamlingen är avstängd.

  • DCB_ENABLE Bindningsansamlingen är på.

Remarks

Windows kan underhålla en rektangel för avgränsning för alla ritningsåtgärder. Den här rektangeln kan frågas och återställas av programmet. Ritningsgränsen är användbar för att ogiltigförklara bitmappscacheminnen.

CDC::SetBrushOrg

Anger det ursprung som GDI tilldelar till nästa pensel som programmet väljer i enhetskontexten.

CPoint SetBrushOrg(
    int x,
    int y);

CPoint SetBrushOrg(POINT point);

Parameters

x
Anger x-koordinaten (i enhetsenheter) för det nya ursprunget. Det här värdet måste ligga i intervallet 0–7.

y
Anger y-koordinaten (i enhetsenheter) för det nya ursprunget. Det här värdet måste ligga i intervallet 0–7.

point
Anger x- och y-koordinaterna för det nya ursprunget. Varje värde måste ligga i intervallet 0–7. Du kan skicka antingen en POINT struktur eller ett CPoint objekt för den här parametern.

Return Value

Penselns tidigare ursprung i enhetsenheter.

Remarks

Standardkoordinaterna för penselns ursprung är (0, 0). Om du vill ändra ursprunget för en pensel anropar du UnrealizeObject funktionen för CBrush objektet, anropar SetBrushOrgoch anropar SelectObject sedan medlemsfunktionen för att välja penseln i enhetskontexten.

Använd inte SetBrushOrg med lagerobjekt CBrush .

CDC::SetColorAdjustment

Anger färgjusteringsvärdena för enhetskontexten med de angivna värdena.

BOOL SetColorAdjustment(const COLORADJUSTMENT* lpColorAdjust);

Parameters

lpColorAdjust
Pekar på en COLORADJUSTMENT datastruktur som innehåller färgjusteringsvärdena.

Return Value

Nonzero om det lyckas; annars 0.

Remarks

Färgjusteringsvärdena används för att justera indatafärgen för källbitmappen för anrop till CDC::StretchBlt medlemsfunktionen när HALFTONE läget är inställt.

CDC::SetDCBrushColor

Anger den aktuella borstfärgen för enhetskontexten (DC) till det angivna färgvärdet.

COLORREF SetDCBrushColor(COLORREF crColor);

Parameters

crColor
Anger den nya penselfärgen.

Return Value

Om funktionen lyckas anger returvärdet den tidigare DC-penselfärgen som ett COLORREF värde.

Om funktionen misslyckas är CLR_INVALIDreturvärdet .

Remarks

Den här metoden emulerar funktionens funktioner SetDCBrushColorenligt beskrivningen i Windows SDK.

CDC::SetDCPenColor

Anger den aktuella färgfärgen för enhetskontexten (DC) till det angivna färgvärdet.

COLORREF SetDCPenColor(COLORREF crColor);

Parameters

crColor
Anger den nya pennfärgen.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Den här medlemsfunktionen använder funktionen SetDCPenColorWin32 , enligt beskrivningen i Windows SDK.

CDC::SetGraphicsMode

Anger grafikläget för den angivna enhetskontexten.

int SetGraphicsMode(int iMode);

Parameters

iMode
Anger grafikläget. En lista över de värden som den här parametern kan ta finns i SetGraphicsMode.

Return Value

Returnerar det gamla grafikläget vid lyckat resultat.

Returnerar 0 vid fel. Om du vill få utökad felinformation anropar du GetLastError.

Remarks

Den här metoden omsluter Windows GDI-funktionen SetGraphicsMode.

CDC::SetLayout

Anropa den här medlemsfunktionen för att ändra layouten för text och grafik för en enhetskontext till höger till vänster, standardlayouten för kulturer som arabiska och hebreiska.

DWORD SetLayout(DWORD dwLayout);

Parameters

dwLayout
Flaggor för enhetskontextlayout och bitmappskontroll. Det kan vara en kombination av följande värden.

Value Meaning
LAYOUT_BITMAPORIENTATIONPRESERVED Inaktiverar alla reflektioner för anrop till CDC::BitBlt och CDC::StretchBlt.
LAYOUT_RTL Anger att den vågräta standardlayouten ska vara höger till vänster.
LAYOUT_LTR Anger att standardlayouten ska vara vänster till höger.

Return Value

Om det lyckas visas den tidigare layouten för enhetskontexten.

Om det inte lyckas, GDI_ERROR. Om du vill få utökad felinformation anropar du GetLastError.

Remarks

Normalt anropar SetLayout du inte för ett fönster. I stället styr du layouten från höger till vänster i ett fönster genom att ange de utökade fönsterformaten , till exempel WS_EX_RTLREADING. En enhetskontext, till exempel en skrivare eller en metafil, ärver inte den här layouten. Det enda sättet att ange enhetskontexten för en layout från höger till vänster är genom att anropa SetLayout.

Om du anropar SetLayout(LAYOUT_RTL)SetLayout ändrar mappningsläget automatiskt till MM_ISOTROPIC. Därför returneras MM_ISOTROPIC ett efterföljande anrop till GetMapMode i stället för MM_TEXT.

I vissa fall, till exempel med många bitmappar, kanske du vill bevara layouten från vänster till höger. I dessa fall renderar du bilden genom att anropa BitBlt eller StretchBltoch sedan ange kontrollflaggan för bitmappen för dwLayout till LAYOUT_BITMAPORIENTATIONPRESERVED.

När du ändrar layouten LAYOUT_RTL med flaggan är flaggorna som normalt anger höger eller vänster omvända. För att undvika förvirring kanske du vill definiera alternativa namn för standardflaggor. En lista över föreslagna alternativa flaggnamn SetLayout finns i Windows SDK.

CDC::SetMapMode

Anger mappningsläget.

virtual int SetMapMode(int nMapMode);

Parameters

nMapMode
Anger det nya mappningsläget. Det kan vara något av följande värden:

  • MM_ANISOTROPIC Logiska enheter konverteras till godtyckliga enheter med godtyckligt skalade axlar. Om du anger mappningsläget till MM_ANISOTROPIC ändras inte de aktuella inställningarna för fönstret eller visningsporten. Om du vill ändra enheter, orientering och skalning anropar du medlemsfunktionerna SetWindowExt och SetViewportExt .

  • MM_HIENGLISH Varje logisk enhet konverteras till 0,001 tum. Positiv x är till höger; positiva y är igång.

  • MM_HIMETRIC Varje logisk enhet konverteras till 0,01 millimeter. Positiv x är till höger; positiva y är igång.

  • MM_ISOTROPIC Logiska enheter konverteras till godtyckliga enheter med lika skalbara axlar. Det innebär att 1 enhet längs x-axeln är lika med 1 enhet längs y-axeln. Använd medlemsfunktionerna SetWindowExt och SetViewportExt för att ange önskade enheter och axlarnas orientering. GDI gör justeringar efter behov för att säkerställa att x- och y-enheterna förblir lika stora.

  • MM_LOENGLISH Varje logisk enhet konverteras till 0,01 tum. Positiv x är till höger; positiva y är igång.

  • MM_LOMETRIC Varje logisk enhet konverteras till 0,1 millimeter. Positiv x är till höger; positiva y är igång.

  • MM_TEXT Varje logisk enhet konverteras till 1 enhetspixel. Positiv x är till höger; positiva y är nere.

  • MM_TWIPS Varje logisk enhet konverteras till 1/20 av en punkt. (Eftersom en punkt är 1/72 tum är en twip 1/1440 tum.) Positiv x är till höger; positiva y är igång.

Return Value

Föregående mappningsläge.

Remarks

Mappningsläget definierar den måttenhet som används för att konvertera logiska enheter till enhetsenheter. den definierar också orienteringen för enhetens x- och y-axlar. GDI använder mappningsläget för att konvertera logiska koordinater till lämpliga enhetskoordinater. Läget MM_TEXT gör att program kan fungera i enhetspixlar, där 1 enhet är lika med 1 bildpunkt. Den fysiska storleken på en pixel varierar från enhet till enhet.

Lägena MM_HIENGLISH, MM_HIMETRIC, MM_LOENGLISH, MM_LOMETRICoch MM_TWIPS är användbara för program som måste rita i fysiskt meningsfulla enheter (till exempel tum eller millimeter). Läget MM_ISOTROPIC säkerställer ett proportioner på 1:1, vilket är användbart när det är viktigt att bevara den exakta formen på en bild. Läget MM_ANISOTROPIC gör att x- och y-koordinaterna kan justeras oberoende av varandra.

Note

Om du anropar SetLayout för att ändra domänkontrollanten (enhetskontexten) till höger-till-vänster-layouten SetLayout ändrar du automatiskt mappningsläget till MM_ISOTROPIC.

Example

Se exemplet för CView::OnPrepareDC.

CDC::SetMapperFlags

Ändrar den metod som används av teckensnittsmapparen när ett logiskt teckensnitt konverteras till ett fysiskt teckensnitt.

DWORD SetMapperFlags(DWORD dwFlag);

Parameters

dwFlag
Anger om teckensnittsmapparen försöker matcha ett teckensnitts höjd och bredd för ett teckensnitt med enheten. När det här värdet är ASPECT_FILTERINGväljer mapparen endast teckensnitt vars x-aspekt och y-aspekt exakt matchar dem för den angivna enheten.

Return Value

Föregående värde för flaggan font-mapper.

Remarks

Ett program kan använda SetMapperFlags för att göra så att teckensnittsmapparen bara försöker välja ett fysiskt teckensnitt som exakt matchar proportionerna för den angivna enheten.

Ett program som endast använder rasterteckensnitt kan använda SetMapperFlags funktionen för att säkerställa att teckensnittet som valts av teckensnittsmapparen är attraktivt och läsbart på den angivna enheten. Program som använder skalbara teckensnitt (TrueType) använder SetMapperFlagsvanligtvis inte .

Om inget fysiskt teckensnitt har ett proportioner som matchar specifikationen i det logiska teckensnittet väljer GDI ett nytt proportioner och väljer ett teckensnitt som matchar det nya proportioner.

CDC::SetMiterLimit

Anger gränsen för längden på miterkopplingar för enhetskontexten.

BOOL SetMiterLimit(float fMiterLimit);

Parameters

fMiterLimit
Anger den nya mitergränsen för enhetskontexten.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Miterlängden definieras som avståndet från skärningspunkten för linjeväggarna på insidan av kopplingen till skärningspunkten för linjeväggarna på utsidan av kopplingen. Mitergränsen är det maximala tillåtna förhållandet mellan miterlängden och linjebredden. Standardgränsen för miter är 10,0.

CDC::SetOutputDC

Anropa den här medlemsfunktionen för att ange enhetskontexten för utdata, m_hDC.

virtual void SetOutputDC(HDC hDC);

Parameters

hDC
En Windows-enhetskontext.

Remarks

Den här medlemsfunktionen kan bara anropas när en enhetskontext inte har kopplats till objektet CDC . Den här medlemsfunktionen anger m_hDC men kopplar inte enhetskontexten CDC till objektet.

CDC::SetPixel

Anger pixeln vid den punkt som anges till närmaste uppskattning av den färg som anges av crColor.

COLORREF SetPixel(
    int x,
    int y,
    COLORREF crColor);

COLORREF SetPixel(
    POINT point,
    COLORREF crColor);

Parameters

x
Anger den logiska x-koordinaten för den punkt som ska anges.

y
Anger den logiska y-koordinaten för den punkt som ska anges.

crColor
Ett COLORREF RGB-värde som anger den färg som används för att måla punkten. En COLORREF beskrivning av det här värdet finns i Windows SDK.

point
Anger de logiska x- och y-koordinaterna för den punkt som ska anges. Du kan skicka antingen en POINT struktur eller ett CPoint objekt för den här parametern.

Return Value

Ett RGB-värde för den färg som punkten är målad. Det här värdet kan skilja sig från det som anges av crColor om en uppskattning av den färgen används. Om funktionen misslyckas (om punkten ligger utanför urklippsområdet) är returvärdet -1.

Remarks

Punkten måste finnas i urklippsregionen. Om punkten inte finns i urklippsregionen gör funktionen ingenting.

Alla enheter stöder SetPixel inte funktionen. Om du vill ta reda på om en enhet stöder SetPixelanropar GetDeviceCaps du medlemsfunktionen med indexet RASTERCAPS och kontrollerar returvärdet för RC_BITBLT flaggan.

CDC::SetPixelV

Anger pixeln vid de angivna koordinaterna till närmaste uppskattning av den angivna färgen.

BOOL SetPixelV(
    int x,
    int y,
    COLORREF crColor);

BOOL SetPixelV(
    POINT point,
    COLORREF crColor);

Parameters

x
Anger x-koordinaten i logiska enheter för den punkt som ska anges.

y
Anger y-koordinaten i logiska enheter för den punkt som ska anges.

crColor
Anger vilken färg som ska användas för att måla punkten.

point
Anger de logiska x- och y-koordinaterna för den punkt som ska anges. Du kan skicka antingen en POINT datastruktur eller ett CPoint objekt för den här parametern.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Punkten måste finnas i både urklippsregionen och den synliga delen av enhetens yta. Alla enheter stöder inte medlemsfunktionen. Mer information finns i RC_BITBLT funktionen i CDC::GetDeviceCaps medlemsfunktionen. SetPixelV är snabbare än SetPixel eftersom den inte behöver returnera färgvärdet för den målade punkten.

CDC::SetPolyFillMode

Anger polygonfyllningsläget.

int SetPolyFillMode(int nPolyFillMode);

Parameters

nPolyFillMode
Anger det nya fyllningsläget. Det här värdet kan vara antingen ALTERNATE eller WINDING. Standardläget i Windows är ALTERNATE.

Return Value

Föregående fyllningsläge, om det lyckas; annars 0.

Remarks

När polygonfyllningsläget är ALTERNATEfyller systemet området mellan udda och jämnt numrerade polygonsidor på varje genomsökningslinje. Systemet fyller alltså området mellan den första och andra sidan, mellan den tredje och fjärde sidan och så vidare. Det här är standardläget.

När polygonfyllningsläget är WINDINGanvänder systemet riktningen där en figur ritades för att avgöra om ett område ska fyllas. Varje linjesegment i en polygon ritas medsols eller motsols. När en imaginär linje som dras från ett omslutet område till utsidan av en figur passerar genom ett medurs linjesegment ökas antalet. När linjen passerar genom ett motsolslinjesegment minskas antalet. Området fylls om antalet inte är noll när linjen når figurens utsida.

CDC::SetROP2

Anger aktuellt ritningsläge.

int SetROP2(int nDrawMode);

Parameters

nDrawMode
Anger det nya ritningsläget. Det kan vara något av följande värden:

  • R2_BLACK Pixeln är alltid svart.

  • R2_WHITE Pixeln är alltid vit.

  • R2_NOP Pixeln förblir oförändrad.

  • R2_NOT Pixel är invertering av skärmfärgen.

  • R2_COPYPEN Pixel är pennfärgen.

  • R2_NOTCOPYPEN Pixel är pennfärgens invertering.

  • R2_MERGEPENNOT Pixel är en kombination av pennfärgen och invertering av skärmfärgen (slutlig pixel = (~ skärmpixel) | penna).

  • R2_MASKPENNOT Pixel är en kombination av de färger som är gemensamma för både pennan och invertering av skärmen (sista pixel = (~ skärmpixel) & penna).

  • R2_MERGENOTPEN Pixel är en kombination av skärmfärgen och invertering av pennfärgen (sista bildpunkten = (~ pennan) | skärmpixel).

  • R2_MASKNOTPEN Pixel är en kombination av de färger som är gemensamma för både skärmen och pennans invertering (sista bildpunkt = (~ penna) & skärmpixel).

  • R2_MERGEPEN Pixel är en kombination av pennfärgen och skärmfärgen (slutlig pixel = pennskärmspixel | ).

  • R2_NOTMERGEPEN Pixel är färgens R2_MERGEPEN invertering (slutlig pixel = ~ (pennskärmspixel | )).

  • R2_MASKPEN Pixel är en kombination av de färger som är gemensamma för både pennan och skärmen (slutlig pixel = pennskärmspixel & ).

  • R2_NOTMASKPEN Pixel är färgens R2_MASKPEN invertering (slutlig pixel = ~ (pennskärmspixel & )).

  • R2_XORPEN Pixel är en kombination av färgerna som finns i pennan eller på skärmen, men inte i båda (slutpunkt = pennskärmspixel ^ ).

  • R2_NOTXORPEN Pixel är färgens R2_XORPEN invertering (slutlig pixel = ~ (pennskärmspixel ^ )).

Return Value

Föregående ritningsläge.

Det kan vara något av de värden som anges i Windows SDK.

Remarks

Ritningsläget anger hur pennans färger och det inre av fyllda objekt kombineras med den färg som redan finns på visningsytan.

Ritningsläget är endast för rasterenheter. Den gäller inte för vektorenheter. Ritningslägen är binära raster-åtgärdskoder som representerar alla möjliga booleska kombinationer av två variabler, med hjälp av de binära operatorerna , och (exklusivt |) och unary-åtgärden ~.^|&

CDC::SetStretchBltMode

Anger bitmappssträckande läge för StretchBlt medlemsfunktionen.

int SetStretchBltMode(int nStretchMode);

Parameters

nStretchMode
Anger sträckningsläget. Det kan vara något av följande värden:

Value Description
BLACKONWHITE Utför en boolesk & åtgärd med hjälp av färgvärdena för de borttagna och befintliga bildpunkterna. Om bitmappen är en monokrom bitmapp bevarar det här läget svarta bildpunkter på bekostnad av vita bildpunkter.
COLORONCOLOR Tar bort bildpunkterna. Det här läget tar bort alla borttagna bildpunkter utan att försöka bevara informationen.
HALFTONE Mappar pixlar från källrektangeln till block med pixlar i målrektangeln. Den genomsnittliga färgen över målblocket med bildpunkter approximeras färgen på källpixlarna.
När du har ställt in sträckningsläget HALFTONE måste ett program anropa funktionen SetBrushOrgEx Win32 för att ange penselns ursprung. Om det inte gör det uppstår feljustering av penseln.
STRETCH_ANDSCANS Windows 95/98: Samma som BLACKONWHITE
STRETCH_DELETESCANS Windows 95/98: Samma som COLORONCOLOR
STRETCH_HALFTONE Windows 95/98: Samma som HALFTONE.
STRETCH_ORSCANS Windows 95/98: Samma som WHITEONBLACK
WHITEONBLACK Utför en boolesk | åtgärd med hjälp av färgvärdena för de borttagna och befintliga bildpunkterna. Om bitmappen är en monokrom bitmapp bevarar det här läget vita bildpunkter på bekostnad av svarta bildpunkter.

Return Value

Föregående sträckningsläge. Det kan vara STRETCH_ANDSCANS, STRETCH_DELETESCANSeller STRETCH_ORSCANS.

Remarks

Läget för bitmappssträckande definierar hur information tas bort från bitmappar som komprimeras med hjälp av funktionen.

Lägena BLACKONWHITE(STRETCH_ANDSCANS) och WHITEONBLACK(STRETCH_ORSCANS) används vanligtvis för att bevara förgrundspixlar i monokroma bitmappar. (COLORONCOLORSTRETCH_DELETESCANS)-läget används vanligtvis för att bevara färg i färgbitmappar.

Läget HALFTONE kräver mer bearbetning av källbilden än de andra tre lägena. Det är långsammare än de andra, men ger bilder av högre kvalitet. SetBrushOrgEx Måste också anropas efter att du har ställt in HALFTONE läget för att undvika borstfeljustering.

Fler sträckningslägen kan också vara tillgängliga beroende på enhetsdrivrutinens funktioner.

CDC::SetTextAlign

Anger textjusteringsflaggor.

UINT SetTextAlign(UINT nFlags);

Parameters

nFlags
Anger textjusteringsflaggor. Flaggorna anger relationen mellan en punkt och en rektangel som begränsar texten. Punkten kan vara antingen den aktuella positionen eller koordinaterna som anges av en textutdatafunktion. Den rektangel som begränsar texten definieras av de intilliggande teckencellerna i textsträngen. Parametern nFlags kan vara en eller flera flaggor från följande tre kategorier. Välj bara en flagga från varje kategori. Den första kategorin påverkar textjusteringen i x-riktningen:

  • TA_CENTER Justerar punkten mot den vågräta mitten av avgränsningsrektangeln.

  • TA_LEFT Justerar punkten mot vänster sida av avgränsningsrektangeln. Det här är standardinställningen.

  • TA_RIGHT Justerar punkten med höger sida av avgränsningsrektangeln.

Den andra kategorin påverkar textjusteringen i y-riktningen:

  • TA_BASELINE Justerar punkten med baslinjen för det valda teckensnittet.

  • TA_BOTTOM Justerar punkten mot botten av avgränsningsrektangeln.

  • TA_TOP Justerar punkten mot toppen av avgränsningsrektangeln. Det här är standardinställningen.

Den tredje kategorin avgör om den aktuella positionen uppdateras när text skrivs:

  • TA_NOUPDATECP Uppdaterar inte den aktuella positionen efter varje anrop till en textutdatafunktion. Det här är standardinställningen.

  • TA_UPDATECP Uppdaterar den aktuella x-positionen efter varje anrop till en textutdatafunktion. Den nya positionen är till höger om avgränsningsrektangeln för texten. När den här flaggan anges ignoreras koordinaterna som anges i anrop till TextOut medlemsfunktionen.

Return Value

Den tidigare textjusteringsinställningen, om den lyckas. Byte med låg ordning innehåller den vågräta inställningen och byte med hög ordning innehåller den lodräta inställningen. annars 0.

Remarks

Medlemsfunktionerna TextOut och ExtTextOut använder dessa flaggor när du placerar en textsträng på en bildskärm eller enhet. Flaggorna anger relationen mellan en specifik punkt och en rektangel som begränsar texten. Koordinaterna för den här punkten skickas som parametrar till TextOut medlemsfunktionen. Rektangeln som begränsar texten bildas av de intilliggande teckencellerna i textsträngen.

CDC::SetTextCharacterExtra

Anger mängden intercharacter-avstånd.

int SetTextCharacterExtra(int nCharExtra);

Parameters

nCharExtra
Anger hur mycket extra utrymme (i logiska enheter) som ska läggas till i varje tecken. Om det aktuella mappningsläget inte MM_TEXTnCharExtra är omvandlas och avrundas det till närmaste pixel.

Return Value

Mängden föregående intercharacter-avstånd.

Remarks

GDI lägger till det här avståndet till varje tecken, inklusive bryttecken, när det skriver en textrad till enhetskontexten. Standardvärdet för mängden intercharacteravstånd är 0.

CDC::SetTextColor

Anger textfärgen till den angivna färgen.

virtual COLORREF SetTextColor(COLORREF crColor);

Parameters

crColor
Anger färgen på texten som ett RGB-färgvärde.

Return Value

Ett RGB-värde för den tidigare textfärgen.

Remarks

Systemet använder den här textfärgen när du skriver text till den här enhetskontexten och även vid konvertering av bitmappar mellan färg- och monokroma enhetskontexter.

Om enheten inte kan representera den angivna färgen anger systemet textfärgen till närmaste fysiska färg. Bakgrundsfärgen för ett tecken anges av medlemsfunktionerna SetBkColor och SetBkMode .

Example

Se exemplet för CWnd::OnCtlColor.

CDC::SetTextJustification

Lägger till blanksteg i bryttecken i en sträng.

int SetTextJustification(
    int nBreakExtra,
    int nBreakCount);

Parameters

nBreakExtra
Anger det totala extra utrymmet som ska läggas till i textraden (i logiska enheter). Om det aktuella mappningsläget inte MM_TEXTär konverteras värdet som anges av den här parametern till det aktuella mappningsläget och avrundas till närmaste enhetsenhet.

nBreakCount
Anger antalet bryttecken på raden.

Return Value

En om funktionen lyckas; annars 0.

Remarks

Ett program kan använda medlemsfunktionerna GetTextMetrics för att hämta ett teckensnitts bryttecken.

SetTextJustification När medlemsfunktionen har anropats distribuerar ett anrop till en textutdatafunktion (till exempel TextOut) det angivna extra utrymmet jämnt mellan det angivna antalet bryttecken. Bryttecknet är vanligtvis blankstegstecknet (ASCII 32), men kan definieras av ett teckensnitt som något annat tecken.

Medlemsfunktionen GetTextExtent används vanligtvis med SetTextJustification. GetTextExtent beräknar bredden på en viss linje före justeringen. Ett program kan avgöra hur mycket utrymme som ska anges i parametern nBreakExtra genom att subtrahera värdet som returneras av GetTextExtent från strängens bredd efter justeringen.

Funktionen SetTextJustification kan användas för att justera en rad som innehåller flera körningar i olika teckensnitt. I det här fallet måste raden skapas bit för bit genom att justera och skriva varje körning separat.

Eftersom avrundningsfel kan inträffa under justeringen behåller systemet en körningsfelterm som definierar det aktuella felet. När du justerar en rad som innehåller flera körningar GetTextExtent använder den här feltermen automatiskt när den beräknar omfattningen av nästa körning. På så sätt kan textutdatafunktionen blanda felet i den nya körningen.

När varje rad har justerats måste den här feltermen rensas för att förhindra att den införlivas i nästa rad. Termen kan rensas genom att anropa SetTextJustification med nBreakExtra värdet 0.

CDC::SetViewportExt

Anger x- och y-omfattningen för visningsporten för enhetskontexten.

virtual CSize SetViewportExt(
    int cx,
    int cy);

CSize SetViewportExt(SIZE size);

Parameters

cx
Anger x-omfattningen för visningsporten (i enhetsenheter).

cy
Anger visningsportens y-omfattning (i enhetsenheter).

size
Anger x- och y-omfattningen för visningsporten (i enhetsenheter).

Return Value

Den tidigare omfattningen av visningsporten som ett CSize objekt. När ett fel inträffar är x- och y-koordinaterna för det returnerade CSize objektet båda inställda på 0.

Remarks

Vyporten, tillsammans med fönstret enhetskontext, definierar hur GDI mappar punkter i det logiska koordinatsystemet till punkter i koordinatsystemet för den faktiska enheten. Med andra ord definierar de hur GDI konverterar logiska koordinater till enhetskoordinater.

När följande mappningslägen anges ignoreras anrop till SetWindowExt och SetViewportExt :

MM_HIENGLISH MM_LOMETRIC
MM_HIMETRIC MM_TEXT
MM_LOENGLISH MM_TWIPS

När MM_ISOTROPIC läget är inställt måste ett program anropa SetWindowExt medlemsfunktionen innan den anropar SetViewportExt.

Example

Se exemplet för CView::OnPrepareDC.

CDC::SetViewportOrg

Anger ursprunget för visningsporten för enhetskontexten.

virtual CPoint SetViewportOrg(
    int x,
    int y);

CPoint SetViewportOrg(POINT point);

Parameters

x
Anger x-koordinaten (i enhetsenheter) för visningsportens ursprung. Värdet måste ligga inom intervallet för enhetens koordinatsystem.

y
Anger y-koordinaten (i enhetsenheter) för visningsportens ursprung. Värdet måste ligga inom intervallet för enhetens koordinatsystem.

point
Anger ursprunget för visningsporten. Värdena måste ligga inom intervallet för enhetens koordinatsystem. Du kan skicka antingen en POINT struktur eller ett CPoint objekt för den här parametern.

Return Value

Det tidigare ursprunget för visningsplatsen (i enhetskoordinater) som ett CPoint objekt.

Remarks

Vyporten, tillsammans med fönstret enhetskontext, definierar hur GDI mappar punkter i det logiska koordinatsystemet till punkter i koordinatsystemet för den faktiska enheten. Med andra ord definierar de hur GDI konverterar logiska koordinater till enhetskoordinater.

Viewport-ursprunget markerar den punkt i enhetens koordinatsystem som GDI mappar fönstrets ursprung till, en punkt i det logiska koordinatsystemet som anges av SetWindowOrg medlemsfunktionen. GDI mappar alla andra punkter genom att följa samma process som krävs för att mappa fönstrets ursprung till visningsportens ursprung. Till exempel kommer alla punkter i en cirkel runt punkten vid fönstrets ursprung att finnas i en cirkel runt punkten vid viewport-ursprunget. På samma sätt kommer alla punkter i en rad som passerar genom fönstrets ursprung att finnas i en rad som passerar genom viewport-ursprunget.

Example

Se exemplet för CView::OnPrepareDC.

CDC::SetWindowExt

Anger x- och y-omfattningen för fönstret som är associerat med enhetskontexten.

virtual CSize SetWindowExt(
    int cx,
    int cy);

CSize SetWindowExt(SIZE size);

Parameters

cx
Anger fönstrets x-omfattning (i logiska enheter).

cy
Anger fönstrets y-omfattning (i logiska enheter).

size
Anger x- och y-utsträckningarna (i logiska enheter) i fönstret.

Return Value

De tidigare omfattningen av fönstret (i logiska enheter) som ett CSize objekt. Om ett fel inträffar är x- och y-koordinaterna för det returnerade CSize objektet båda inställda på 0.

Remarks

Fönstret, tillsammans med visningsporten för enhetskontext, definierar hur GDI mappar punkter i det logiska koordinatsystemet till punkter i enhetens koordinatsystem.

När följande mappningslägen anges ignoreras anrop till SetWindowExt och SetViewportExt funktioner:

  • MM_HIENGLISH

  • MM_HIMETRIC

  • MM_LOENGLISH

  • MM_LOMETRIC

  • MM_TEXT

  • MM_TWIPS

När MM_ISOTROPIC läget är inställt måste ett program anropa medlemsfunktionen innan det SetWindowExt anropar SetViewportExt.

Example

Se exemplet för CView::OnPrepareDC.

CDC::SetWindowOrg

Anger fönstrets ursprung för enhetskontexten.

CPoint SetWindowOrg(
    int x,
    int y);

CPoint SetWindowOrg(POINT point);

Parameters

x
Anger den logiska x-koordinaten för fönstrets nya ursprung.

y
Anger den logiska y-koordinaten för fönstrets nya ursprung.

point
Anger de logiska koordinaterna för fönstrets nya ursprung. Du kan skicka antingen en POINT struktur eller ett CPoint objekt för den här parametern.

Return Value

Fönstrets tidigare ursprung som ett CPoint objekt.

Remarks

Fönstret, tillsammans med visningsporten för enhetskontext, definierar hur GDI mappar punkter i det logiska koordinatsystemet till punkter i enhetens koordinatsystem.

Fönstrets ursprung markerar punkten i det logiska koordinatsystemet från vilket GDI mappar visningsportens ursprung, en punkt i enhetens koordinatsystem som anges av SetWindowOrg funktionen. GDI mappar alla andra punkter genom att följa samma process som krävs för att mappa fönstrets ursprung till visningsportens ursprung. Till exempel kommer alla punkter i en cirkel runt punkten vid fönstrets ursprung att finnas i en cirkel runt punkten vid viewport-ursprunget. På samma sätt kommer alla punkter i en rad som passerar genom fönstrets ursprung att finnas i en rad som passerar genom viewport-ursprunget.

CDC::SetWorldTransform

Anger en tvådimensionell linjär transformering mellan världsutrymme och sidutrymme för den angivna enhetskontexten. Den här omvandlingen kan användas för att skala, rotera, klippa eller översätta grafikutdata.

BOOL SetWorldTransform(const XFORM& rXform);

Parameters

rXform
Referens till en XFORM struktur som innehåller transformeringsdata.

Return Value

Returnerar ett värde som inte är noll vid lyckat resultat.

Returnerar 0 vid fel.

Om du vill få utökad felinformation anropar du GetLastError.

Remarks

Den här metoden omsluter Windows GDI-funktionen SetWorldTransform.

CDC::StartDoc

Informerar enhetsdrivrutinen om att ett nytt utskriftsjobb startas och att alla efterföljande StartPage anrop och EndPage anrop ska bufferas under samma jobb tills ett EndDoc anrop inträffar.

int StartDoc(LPDOCINFO lpDocInfo);
int StartDoc(LPCTSTR lpszDocName);

Parameters

lpDocInfo
Pekar på en DOCINFO struktur som innehåller namnet på dokumentfilen och namnet på utdatafilen.

lpszDocName
Pekare till en sträng som innehåller namnet på dokumentfilen.

Return Value

Om funktionen lyckas är returvärdet större än noll. Det här värdet är utskriftsjobbidentifieraren för dokumentet.

Om funktionen misslyckas är returvärdet mindre än eller lika med noll.

Remarks

Detta säkerställer att dokument som är längre än en sida inte varvat med andra jobb.

För Windows version 3.1 och senare ersätter den här funktionen skrivaren escape STARTDOC . Om du använder den här funktionen ser du till att dokument som innehåller mer än en sida inte varvat med andra utskriftsjobb.

StartDoc ska inte användas i metafiler.

Example

Det här kodfragmentet hämtar standardskrivaren, öppnar ett utskriftsjobb och spolar en sida med "Hello, World!" på den. Eftersom texten som skrivs ut med den här koden inte skalas till skrivarens logiska enheter kan utdatatexten ha så små bokstäver att resultatet är oläsligt. CDC-skalningsfunktionerna, till exempel SetMapMode, SetViewportOrgoch SetWindowExt, kan användas för att åtgärda skalningen.

void CDCView::DoStartDoc()
{
   // get the default printer
   CPrintDialog dlg(FALSE);
   dlg.GetDefaults();

   // is a default printer set up?
   HDC hdcPrinter = dlg.GetPrinterDC();
   if (hdcPrinter == NULL)
   {
      MessageBox(_T("Buy a printer!"));
   }
   else
   {
      // create a CDC and attach it to the default printer
      CDC dcPrinter;
      dcPrinter.Attach(hdcPrinter);

      // call StartDoc() to begin printing
      DOCINFO docinfo;
      memset(&docinfo, 0, sizeof(docinfo));
      docinfo.cbSize = sizeof(docinfo);
      docinfo.lpszDocName = _T("CDC::StartDoc() Code Fragment");

      // if it fails, complain and exit gracefully
      if (dcPrinter.StartDoc(&docinfo) < 0)
      {
         MessageBox(_T("Printer wouldn't initialize"));
      }
      else
      {
         // start a page
         if (dcPrinter.StartPage() < 0)
         {
            MessageBox(_T("Could not start page"));
            dcPrinter.AbortDoc();
         }
         else
         {
            // actually do some printing
            CGdiObject *pOldFont = dcPrinter.SelectStockObject(SYSTEM_FONT);

            dcPrinter.TextOut(50, 50, _T("Hello World!"), 12);

            dcPrinter.EndPage();
            dcPrinter.EndDoc();
            dcPrinter.SelectObject(pOldFont);
         }
      }
   }
}

CDC::StartPage

Anropa den här medlemsfunktionen för att förbereda skrivardrivrutinen för att ta emot data.

int StartPage();

Return Value

Större än eller lika med 0 om funktionen lyckas eller ett negativt värde om ett fel uppstod.

Remarks

StartPage NEWFRAME ersätter och BANDINFO flyr.

En översikt över sekvensen med utskriftsanrop finns i StartDoc medlemsfunktionen.

Systemet inaktiverar ResetDC medlemsfunktionen mellan anrop till StartPage och EndPage.

Example

Se exemplet för CDC::StartDoc.

CDC::StretchBlt

Kopierar en bitmapp från en källrektangel till en målrektangel, sträcker ut eller komprimerar bitmappen om det behövs för att passa målrektangelns dimensioner.

BOOL StretchBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    DWORD dwRop);

Parameters

x
Anger x-koordinaten (i logiska enheter) i det övre vänstra hörnet i målrektangeln.

y
Anger y-koordinaten (i logiska enheter) i det övre vänstra hörnet av målrektangeln.

nWidth
Anger bredden (i logiska enheter) för målrektangeln.

nHeight
Anger höjden (i logiska enheter) för målrektangeln.

pSrcDC
Anger källenhetskontexten.

xSrc
Anger x-koordinaten (i logiska enheter) i det övre vänstra hörnet i källrektangeln.

ySrc
Anger y-koordinaten (i logiska enheter) i det övre vänstra hörnet av källrektangeln.

nSrcWidth
Anger bredden (i logiska enheter) för källrektangeln.

nSrcHeight
Anger höjden (i logiska enheter) för källrektangeln.

dwRop
Anger vilken rasteråtgärd som ska utföras. Rastreringsåtgärdskoder definierar hur GDI kombinerar färger i utdataåtgärder som omfattar en aktuell pensel, en möjlig källbitmapp och en målbitmapp. Den här parametern kan vara något av följande värden:

  • BLACKNESS Gör alla utdata svarta.

  • DSTINVERT Invertera målbitmappen.

  • MERGECOPY Kombinerar mönstret och källbitmappen med hjälp av den booleska AND-operatorn .

  • MERGEPAINTKombinerar den inverterade källbitmappen med målbitmappen med hjälp av den booleska OR-operatorn.

  • NOTSRCCOPY Kopierar den inverterade källbitmappen till målet.

  • NOTSRCERASEInvertera resultatet av att kombinera mål- och källbitmappar med hjälp av den booleska OR-operatorn.

  • PATCOPY Kopierar mönstret till målbitmappen.

  • PATINVERT Kombinerar målbitmappen med mönstret med hjälp av den booleska XOR-operatorn .

  • PATPAINTKombinerar den inverterade källbitmappen med mönstret med hjälp av den booleska OR-operatorn. Kombinerar resultatet av den här åtgärden med målbitmappen med hjälp av den booleska OR-operatorn.

  • SRCANDKombinerar bildpunkter i mål- och källbitmapparna med hjälp av den booleska AND-operatorn.

  • SRCCOPY Kopierar källbitmappen till målbitmappen.

  • SRCERASE Invertera målbitmappen och kombinerar resultatet med källbitmappen med hjälp av den booleska AND-operatorn .

  • SRCINVERT Kombinerar bildpunkter i mål- och källbitmapparna med hjälp av den booleska XOR-operatorn .

  • SRCPAINTKombinerar bildpunkter i mål- och källbitmapparna med hjälp av den booleska OR-operatorn.

  • WHITENESS Gör alla utdata vita.

Return Value

Nonzero om bitmappen ritas; annars 0.

Remarks

Funktionen använder sträckningsläget för målenhetskontexten (anges av SetStretchBltMode) för att avgöra hur bitmappen ska sträckas ut eller komprimeras.

Funktionen StretchBlt flyttar bitmappen från källenheten som anges av pSrcDC till målenheten som representeras av objektet för enhetskontexten vars medlemsfunktion anropas. Parametrarna xSrc, ySrc, nSrcWidthoch nSrcHeight definierar det övre vänstra hörnet och dimensionerna för källrektangeln. Parametrarna x, y, nWidthoch nHeight ger det övre vänstra hörnet och dimensionerna för målrektangeln. Rasteråtgärden som anges av dwRop definierar hur källbitmappen och de bitar som redan finns på målenheten kombineras.

Funktionen StretchBlt skapar en speglingsbild av en bitmapp om tecknen på parametrarna nSrcWidth och och nWidth och nSrcHeightnHeight skiljer sig åt. Om nSrcWidth och nWidth har olika tecken skapar funktionen en speglingsbild av bitmappen längs x-axeln. Om nSrcHeight och nHeight har olika tecken skapar funktionen en speglingsbild av bitmappen längs y-axeln.

Funktionen StretchBlt sträcker ut eller komprimerar källbitmappen i minnet och kopierar sedan resultatet till målet. Om ett mönster ska sammanfogas med resultatet sammanfogas det inte förrän bitmappen för den utsträckta källan kopieras till målet. Om en pensel används är det den markerade penseln i målenhetskontexten. Målkoordinaterna transformeras enligt målenhetskontexten. källkoordinaterna transformeras enligt källenhetskontexten.

Om bitmapparna mål, källa och mönster inte har samma färgformat StretchBlt konverteras käll- och mönsterbitmapparna så att de matchar målbitmapparna. Förgrunds- och bakgrundsfärgerna i målenhetskontexten används i konverteringen.

Om StretchBlt måste konvertera en monokrom bitmapp till färg, anger den vita bitar (1) till bakgrundsfärgen och svarta bitar (0) till förgrundsfärgen. Om du vill konvertera färg till monokrom anger den pixlar som matchar bakgrundsfärgen till vit (1) och anger alla andra pixlar till svarta (0). Förgrunds- och bakgrundsfärgerna i enhetskontexten med färg används.

Alla enheter stöder StretchBlt inte funktionen. Om du vill ta reda på om en enhet stöder StretchBltanropar GetDeviceCaps du medlemsfunktionen med indexet RASTERCAPS och kontrollerar returvärdet för RC_STRETCHBLT flaggan.

CDC::StrokeAndFillPath

Stänger alla öppna figurer i en sökväg, linjerar konturen av sökvägen med hjälp av den aktuella pennan och fyller dess inre med hjälp av den aktuella penseln.

BOOL StrokeAndFillPath();

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Enhetskontexten måste innehålla en stängd sökväg. Medlemsfunktionen StrokeAndFillPath har samma effekt som att stänga alla öppna figurer i sökvägen och stryka och fylla sökvägen separat, förutom att den fyllda regionen inte överlappar den streckade regionen även om pennan är bred.

CDC::StrokePath

Renderar den angivna sökvägen med hjälp av den aktuella pennan.

BOOL StrokePath();

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Enhetskontexten måste innehålla en stängd sökväg.

CDC::TabbedTextOut

Anropa den här medlemsfunktionen för att skriva en teckensträng på den angivna platsen och expandera flikar till de värden som anges i matrisen med tab-stop-positioner.

virtual CSize TabbedTextOut(
    int x,
    int y,
    LPCTSTR lpszString,
    int nCount,
    int nTabPositions,
    LPINT lpnTabStopPositions,
    int nTabOrigin);

CSize TabbedTextOut(
    int x,
    int y,
    const CString& str,
    int nTabPositions,
    LPINT lpnTabStopPositions,
    int nTabOrigin);

Parameters

x
Anger den logiska x-koordinaten för strängens startpunkt.

y
Anger den logiska y-koordinaten för strängens startpunkt.

lpszString
Pekar på teckensträngen som ska ritas. Du kan skicka antingen en pekare till en matris med tecken eller ett CString objekt för den här parametern.

nCount
Anger längden på strängen som pekas på av lpszString.

nTabPositions
Anger antalet värden i matrisen med tab-stop-positioner.

lpnTabStopPositions
Pekar på en matris som innehåller tab-stop-positionerna (i logiska enheter). Tabbstoppen måste sorteras i ökande ordning. det minsta x-värdet ska vara det första objektet i matrisen.

nTabOrigin
Anger x-koordinaten för startpositionen från vilken flikarna expanderas (i logiska enheter).

str
Ett CString objekt som innehåller de angivna tecknen.

Return Value

Dimensionerna för strängen (i logiska enheter) som ett CSize objekt.

Remarks

Text skrivs med det markerade teckensnittet. Om nTabPositions är 0 och lpnTabStopPositions är NULLexpanderas flikarna till åtta gånger den genomsnittliga teckenbredden.

Om nTabPositions är 1 avgränsas tabbstoppen med det avstånd som anges av det första värdet i matrisen lpnTabStopPositions . Om matrisen lpnTabStopPositions innehåller mer än ett värde anges ett tabbstopp för varje värde i matrisen, upp till det tal som anges av nTabPositions. Med nTabOrigin parametern kan ett program anropa TabbedTextOut funktionen flera gånger för en enda rad. Om programmet anropar funktionen mer än en gång med nTabOrigin värdet inställt på samma värde varje gång, expanderar funktionen alla flikar i förhållande till den position som anges av nTabOrigin.

Som standard används eller uppdateras inte den aktuella positionen av funktionen. Om ett program behöver uppdatera den aktuella positionen när det anropar funktionen kan programmet anropa SetTextAlign medlemsfunktionen med nFlags inställt på TA_UPDATECP. När den här flaggan har angetts ignorerar Windows parametrarna x och y för efterföljande anrop till TabbedTextOut, med den aktuella positionen i stället.

CDC::TextOut

Skriver en teckensträng på den angivna platsen med det markerade teckensnittet.

virtual BOOL TextOut(
    int x,
    int y,
    LPCTSTR lpszString,
    int nCount);

BOOL TextOut(
    int x,
    int y,
    const CString& str);

Parameters

x
Anger den logiska x-koordinaten för textens startpunkt.

y
Anger den logiska y-koordinaten för textens startpunkt.

lpszString
Pekar på teckensträngen som ska ritas.

nCount
Anger antalet tecken i strängen.

str
Ett CString objekt som innehåller de tecken som ska ritas.

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Teckenets ursprung finns i det övre vänstra hörnet i teckencellen. Som standard används eller uppdateras inte den aktuella positionen av funktionen.

Om ett program behöver uppdatera den aktuella positionen när det anropar TextOutkan programmet anropa SetTextAlign medlemsfunktionen med nFlags inställt på TA_UPDATECP. När den här flaggan har angetts ignorerar Windows parametrarna x och y för efterföljande anrop till TextOut, med den aktuella positionen i stället.

Example

Se exemplet för CDC::BeginPath.

CDC::TransparentBlt

Anropa den här medlemsfunktionen för att överföra ett bitblock av färgdata, som motsvarar en rektangel med bildpunkter från den angivna källenhetskontexten, till en målenhetskontext.

BOOL TransparentBlt(
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    UINT clrTransparent);

Parameters

xDest
Anger x-koordinaten i logiska enheter i det övre vänstra hörnet i målrektangeln.

yDest
Anger y-koordinaten i logiska enheter i det övre vänstra hörnet av målrektangeln.

nDestWidth
Anger målrektangelns bredd i logiska enheter.

nDestHeight
Anger målrektangelns höjd i logiska enheter.

pSrcDC
Pekare mot källenhetskontexten.

xSrc
Anger x-koordinaten i logiska enheter för källrektangeln.

ySrc
Anger y-koordinaten i logiska enheter för källrektangeln.

nSrcWidth
Anger bredden i logiska enheter för källrektangeln.

nSrcHeight
Anger höjden, i logiska enheter, på källrektangeln.

clrTransparent
RGB-färgen i källbitmappen som ska behandlas som transparent.

Return Value

TRUE om det lyckas. annars FALSE.

Remarks

TransparentBlt möjliggör öppenhet. Den RGB-färg som anges av clrTransparent återges alltså transparent för överföringen.

Mer information TransparentBlt finns i Windows SDK.

CDC::UpdateColors

Uppdaterar klientområdet i enhetskontexten genom att matcha de aktuella färgerna i klientområdet till systempaletten pixel för bildpunkt.

void UpdateColors();

Remarks

Ett inaktivt fönster med en realiserad logisk palett kan anropa UpdateColors som ett alternativ till att rita om klientområdet när systempaletten ändras.

Mer information om hur du använder färgpaletter UpdateColors finns i Windows SDK.

Medlemsfunktionen UpdateColors uppdaterar vanligtvis ett klientområde snabbare än att rita om området. Men eftersom funktionen utför färgöversättningen baserat på färgen på varje pixel innan systempaletten ändras, resulterar varje anrop till den här funktionen i att viss färgnoggrannhet går förlorad.

CDC::WidenPath

Omdefinierar den aktuella sökvägen som det område som skulle målas om sökvägen linjerades med hjälp av den penna som för närvarande är markerad i enhetskontexten.

BOOL WidenPath();

Return Value

Nonzero om funktionen lyckas; annars 0.

Remarks

Den här funktionen lyckas endast om den aktuella pennan är en geometrisk penna som skapats av den andra versionen av CreatePen medlemsfunktionen, eller om pennan skapas med den första versionen av CreatePen och har en bredd i enhetsenheter på större än 1. Enhetskontexten måste innehålla en stängd sökväg. Alla Bzier-kurvor i sökvägen konverteras till sekvenser av räta linjer som approximerar de vidgade kurvorna. Därför finns inga Bzier-kurvor kvar i sökvägen efter WidenPath anropas.

See also

CObject klass
Hierarchy Chart
CPaintDC klass
CWindowDC klass
CClientDC klass
CMetaFileDC klass