CDC-Klasse

Definiert eine Klasse von Gerätekontextobjekten.

Syntax

class CDC : public CObject

Member

Öffentliche Konstruktoren

Name Beschreibung
CDC::CDC Erstellt ein CDC-Objekt.

Öffentliche Methoden

Name Beschreibung
CDC::AbortDoc Beendet den aktuellen Druckauftrag und löscht alles, was die Anwendung seit dem letzten Aufruf der StartDoc Memberfunktion auf das Gerät geschrieben hat.
CDC::AbortPath Schließt alle Pfade im Gerätekontext und entfernt sie Karte.
CDC::AddMetaFileComment Kopiert den Kommentar aus einem Puffer in eine angegebene Metadatei im erweiterten Format.
CDC::AlphaBlend Zeigt Bitmaps mit transparenten oder halbtransparenten Pixeln an.
CDC::AngleArc Zeichnet ein Liniensegment und einen Bogen und verschiebt die aktuelle Position an den Endpunkt des Bogens.
CDC::Arc Zeichnet einen elliptischen Bogen.
CDC::ArcTo Zeichnet einen elliptischen Bogen. Diese Funktion ähnelt Arc, mit der Ausnahme, dass die aktuelle Position aktualisiert wird.
CDC::Attach Fügt einen Windows-Gerätekontext an dieses CDC Objekt an.
CDC::BeginPath Öffnet eine Pfadklammer im Gerätekontext.
CDC::BitBlt Kopiert eine Bitmap aus einem angegebenen Gerätekontext.
CDC::Chord Zeichnet einen Chor (eine geschlossene Figur, die durch den Schnittpunkt einer Ellipse und eines Liniensegments begrenzt ist).
CDC::CloseFigure Schließt eine geöffnete Abbildung in einem Pfad.
CDC::CreateCompatibleDC Erstellt einen Speichergerätekontext, der mit einem anderen Gerätekontext kompatibel ist. Sie können es verwenden, um Bilder im Arbeitsspeicher vorzubereiten.
CDC::CreateDC Erstellt einen Gerätekontext für ein bestimmtes Gerät.
CDC::CreateIC Erstellt einen Informationskontext für ein bestimmtes Gerät. Dies bietet eine schnelle Möglichkeit, Informationen über das Gerät abzurufen, ohne einen Gerätekontext zu erstellen.
CDC::DeleteDC Löscht den Windows-Gerätekontext, der diesem CDC Objekt zugeordnet ist.
CDC::DeleteTempMap Wird vom CWinApp Leerlaufzeithandler aufgerufen, um alle temporären CDC Objekte zu löschen, die von FromHandle. Trennt auch den Gerätekontext.
CDC::Detach Trennt den Windows-Gerätekontext von diesem CDC Objekt.
CDC::DPtoHIMETRIC Konvertiert Geräteeinheiten in HIMETRIC Einheiten.
CDC::DPtoLP Konvertiert Geräteeinheiten in logische Einheiten.
CDC::Draw3dRect Zeichnet ein dreidimensionales Rechteck.
CDC::DrawDragRect Löscht ein Rechteck, während es gezogen wird.
CDC::DrawEdge Zeichnet die Kanten eines Rechtecks.
CDC::DrawEscape Greift auf Zeichenfunktionen einer Videoanzeige zu, die nicht direkt über die Grafikgeräteschnittstelle (Graphics Device Interface, GDI) verfügbar sind.
CDC::DrawFocusRect Zeichnet ein Rechteck in der Formatvorlage, das verwendet wird, um den Fokus anzugeben.
CDC::DrawFrameControl Zeichnen Sie ein Frame-Steuerelement.
CDC::DrawIcon Zeichnet ein Symbol.
CDC::DrawState Zeigt ein Bild an und wendet einen visuellen Effekt an, um einen Zustand anzuzeigen.
CDC::DrawText Zeichnet formatierten Text im angegebenen Rechteck.
CDC::DrawTextEx Zeichnet formatierten Text im angegebenen Rechteck mit anderen Formaten.
CDC::Ellipse Zeichnet eine Ellipse.
CDC::EndDoc Beendet einen Druckauftrag, der von der StartDoc Memberfunktion gestartet wurde.
CDC::EndPage Informiert den Gerätetreiber darüber, dass eine Seite beendet ist.
CDC::EndPath Schließt eine Pfadklammer und wählt den durch die Klammer definierten Pfad in den Gerätekontext aus.
CDC::EnumObjects Listet die Stifte und Pinsel auf, die in einem Gerätekontext verfügbar sind.
CDC::Escape Ermöglicht Anwendungen den Zugriff auf Einrichtungen, die nicht direkt von einem bestimmten Gerät über GDI verfügbar sind. Ermöglicht auch den Zugriff auf Windows-Escapefunktionen. Escapeaufrufe von einer Anwendung werden übersetzt und an den Gerätetreiber gesendet.
CDC::ExcludeClipRect Erstellt einen neuen Beschneidungsbereich, der aus dem vorhandenen Clippingbereich abzüglich des angegebenen Rechtecks besteht.
CDC::ExcludeUpdateRgn Verhindert das Zeichnen innerhalb ungültiger Bereiche eines Fensters, indem ein aktualisierter Bereich im Fenster von einem Beschneidungsbereich ausgeschlossen wird.
CDC::ExtFloodFill Füllt einen Bereich mit dem aktuellen Pinsel aus. Bietet mehr Flexibilität als die CDC::FloodFill Memberfunktion.
CDC::ExtTextOut Schreibt eine Zeichenfolge in einem rechteckigen Bereich mithilfe der aktuell ausgewählten Schriftart.
CDC::FillPath Schließt alle geöffneten Figuren im aktuellen Pfad und füllt das Innere des Pfads mithilfe des aktuellen Pinsel- und Polygonfüllmodus aus.
CDC::FillRect Füllt ein bestimmtes Rechteck mithilfe eines bestimmten Pinsels aus.
CDC::FillRgn Füllt einen bestimmten Bereich mit dem angegebenen Pinsel.
CDC::FillSolidRect Füllt ein Rechteck mit einer Volltonfarbe aus.
CDC::FlattenPath Wandelt alle Kurven im ausgewählten Pfad in den aktuellen Gerätekontext um und wandelt jede Kurve in eine Folge von Linien um.
CDC::FloodFill Füllt einen Bereich mit dem aktuellen Pinsel aus.
CDC::FrameRect Zeichnet einen Rahmen um ein Rechteck.
CDC::FrameRgn Zeichnet einen Rahmen um einen bestimmten Bereich mithilfe eines Pinsels.
CDC::FromHandle Gibt einen Zeiger auf ein CDC Objekt zurück, wenn ein Handle auf einen Gerätekontext übergeben wird. Wenn ein CDC Objekt nicht an das Handle angefügt ist, wird ein temporäres CDC Objekt erstellt und angefügt.
CDC::GetArcDirection Gibt die aktuelle Bogenrichtung für den Gerätekontext zurück.
CDC::GetAspectRatioFilter Ruft die Einstellung für den aktuellen Seitenverhältnisfilter ab.
CDC::GetBkColor Ruft die aktuelle Hintergrundfarbe ab.
CDC::GetBkMode Ruft den Hintergrundmodus ab.
CDC::GetBoundsRect Gibt das aktuelle angesammelte Begrenzungsrechteck für den angegebenen Gerätekontext zurück.
CDC::GetBrushOrg Ruft den Ursprung des aktuellen Pinsels ab.
CDC::GetCharABCWidths Ruft die Breite in logischen Einheiten von aufeinander folgenden Zeichen in einem bestimmten Bereich aus der aktuellen Schriftart ab.
CDC::GetCharABCWidthsI Ruft die Breite in logischen Einheiten von aufeinander folgenden Glyphenindizes in einem angegebenen Bereich aus der aktuellen TrueType-Schriftart ab.
CDC::GetCharacterPlacement Ruft verschiedene Typen von Informationen zu einer Zeichenfolge ab.
CDC::GetCharWidth Ruft die Bruchbreiten aufeinander folgender Zeichen in einem bestimmten Bereich aus der aktuellen Schriftart ab.
CDC::GetCharWidthI Ruft die Breite in logischen Koordinaten von aufeinander folgenden Glyphenindizes in einem angegebenen Bereich von der aktuellen Schriftart ab.
CDC::GetClipBox Ruft die Abmessungen des strengsten Begrenzungsrechtecks um die aktuelle Beschneidungsgrenze ab.
CDC::GetColorAdjustment Ruft die Farbanpassungswerte für den Gerätekontext ab.
CDC::GetCurrentBitmap Gibt einen Zeiger auf das aktuell ausgewählte CBitmap Objekt zurück.
CDC::GetCurrentBrush Gibt einen Zeiger auf das aktuell ausgewählte CBrush Objekt zurück.
CDC::GetCurrentFont Gibt einen Zeiger auf das aktuell ausgewählte CFont Objekt zurück.
CDC::GetCurrentPalette Gibt einen Zeiger auf das aktuell ausgewählte CPalette Objekt zurück.
CDC::GetCurrentPen Gibt einen Zeiger auf das aktuell ausgewählte CPen Objekt zurück.
CDC::GetCurrentPosition Ruft die aktuelle Position des Stifts (in logischen Koordinaten) ab.
CDC::GetDCBrushColor Ruft die aktuelle Pinselfarbe ab.
CDC::GetDCPenColor Ruft die aktuelle Stiftfarbe ab.
CDC::GetDeviceCaps Ruft eine bestimmte Art von gerätespezifischen Informationen zu den Funktionen eines bestimmten Anzeigegeräts ab.
CDC::GetFontData Ruft Schriftmetrikinformationen aus einer skalierbaren Schriftartdatei ab. Die abzurufenden Informationen werden durch Angabe eines Offsets in der Schriftartdatei und der Länge der zurückzugebenden Informationen identifiziert.
CDC::GetFontLanguageInfo Gibt Informationen zur aktuell ausgewählten Schriftart für den angegebenen Anzeigekontext zurück.
CDC::GetGlyphOutline Ruft die Gliederungskurve oder Bitmap für ein Gliederungszeichen in der aktuellen Schriftart ab.
CDC::GetGraphicsMode Ruft den aktuellen Grafikmodus für den angegebenen Gerätekontext ab.
CDC::GetHalftoneBrush Ruft einen Halbtonpinsel ab.
CDC::GetKerningPairs Ruft die Zeichenkerningpaare für die Schriftart ab, die derzeit im angegebenen Gerätekontext ausgewählt ist.
CDC::GetLayout Ruft das Layout eines Gerätekontexts (DC) ab. Das Layout kann entweder von links nach rechts (Standard) oder von rechts nach links (Spiegel d) sein.
CDC::GetMapMode Ruft den aktuellen Zuordnungsmodus ab.
CDC::GetMiterLimit Gibt den Mitergrenzwert für den Gerätekontext zurück.
CDC::GetNearestColor Ruft die nächstgelegene logische Farbe zu einer angegebenen logischen Farbe ab, die das angegebene Gerät darstellen kann.
CDC::GetOutlineTextMetrics Ruft Schriftmetrikinformationen für TrueType-Schriftarten ab.
CDC::GetOutputCharWidth Ruft die Breite einzelner Zeichen in einer aufeinander folgenden Gruppe von Zeichen aus der aktuellen Schriftart mithilfe des Ausgabegerätekontexts ab.
CDC::GetOutputTabbedTextExtent Berechnet die Breite und Höhe einer Zeichenfolge im Ausgabegerätekontext.
CDC::GetOutputTextExtent Berechnet die Breite und Höhe einer Textzeile im Ausgabegerätekontext mithilfe der aktuellen Schriftart, um die Abmessungen zu bestimmen.
CDC::GetOutputTextMetrics Ruft die Metriken für die aktuelle Schriftart aus dem Ausgabegerätekontext ab.
CDC::GetPath Ruft die Koordinaten ab, die die Endpunkte von Linien und die Kontrollpunkte von Kurven definieren, die im Pfad gefunden werden, der im Gerätekontext ausgewählt ist.
CDC::GetPixel Ruft den RGB-Farbwert des Pixels am angegebenen Punkt ab.
CDC::GetPolyFillMode Ruft den aktuellen Polygonfüllmodus ab.
CDC::GetROP2 Ruft den aktuellen Zeichnungsmodus ab.
CDC::GetSafeHdc Gibt den Ausgabegerätekontext zurück CDC::m_hDC.
CDC::GetStretchBltMode Ruft den aktuellen Bitmapdehnungsmodus ab.
CDC::GetTabbedTextExtent Berechnet die Breite und Höhe einer Zeichenfolge im Attributgerätekontext.
CDC::GetTextAlign Ruft die Textausrichtungskennzeichnungen ab.
CDC::GetTextCharacterExtra Ruft die aktuelle Einstellung für die Menge der Intercharacter-Abstände ab.
CDC::GetTextColor Ruft die aktuelle Textfarbe ab.
CDC::GetTextExtent Berechnet die Breite und Höhe einer Textzeile im Attributgerätekontext mithilfe der aktuellen Schriftart, um die Abmessungen zu bestimmen.
CDC::GetTextExtentExPointI Ruft die Anzahl der Zeichen in einer angegebenen Zeichenfolge ab, die in ein angegebenes Leerzeichen passt, und füllt ein Array mit der Textgröße für jedes dieser Zeichen aus.
CDC::GetTextExtentPointI Ruft die Breite und Höhe des angegebenen Arrays von Glyphenindizes ab.
CDC::GetTextFace Kopiert den Schriftartnamen der aktuellen Schriftart in einen Puffer als null-beendete Zeichenfolge.
CDC::GetTextMetrics Ruft die Metriken für die aktuelle Schriftart aus dem Attributgerätekontext ab.
CDC::GetViewportExt Ruft die x- und y-Erweiterung des Viewports ab.
CDC::GetViewportOrg Ruft die x- und y-Koordinaten des Viewportursprungs ab.
CDC::GetWindow Gibt das Fenster zurück, das dem Anzeigegerätekontext zugeordnet ist.
CDC::GetWindowExt Ruft die x- und y-Erweiterung des zugeordneten Fensters ab.
CDC::GetWindowOrg Ruft die x- und y-Koordinaten des Ursprungs des zugeordneten Fensters ab.
CDC::GetWorldTransform Ruft die aktuelle Weltfläche zur Seitenbereichtransformation ab.
CDC::GradientFill Füllt Rechteck- und Dreiecksstrukturen mit einer Gradierungsfarbe.
CDC::GrayString Zeichnet abgeblendeten (abgeblendeten) Text an der angegebenen Position.
CDC::HIMETRICtoDP Konvertiert HIMETRIC-Einheiten in Geräteeinheiten.
CDC::HIMETRICtoLP Konvertiert HIMETRIC-Einheiten in logische Einheiten.
CDC::IntersectClipRect Erstellt einen neuen Beschneidungsbereich, indem der Schnittpunkt des aktuellen Bereichs und eines Rechtecks gebildet wird.
CDC::InvertRect Umkehrt den Inhalt eines Rechtecks.
CDC::InvertRgn Invertiert die Farben in einem Bereich.
CDC::IsPrinting Bestimmt, ob der Gerätekontext zum Drucken verwendet wird.
CDC::LineTo Zeichnet eine Linie von der aktuellen Position bis zu einem Punkt, aber nicht einschließlich eines Punkts.
CDC::LPtoDP Wandelt logische Einheiten in Geräteeinheiten um.
CDC::LPtoHIMETRIC Wandelt logische Einheiten in HIMETRIC-Einheiten um.
CDC::MaskBlt Kombiniert die Farbdaten für die Quell- und Zielbitmaps mithilfe des angegebenen Masken- und Rastervorgangs.
CDC::ModifyWorldTransform Ändert die Welttransformation für einen Gerätekontext mithilfe des angegebenen Modus.
CDC::MoveTo Verschiebt die aktuelle Position.
CDC::OffsetClipRgn Verschiebt den Clippingbereich des angegebenen Geräts.
CDC::OffsetViewportOrg Ändert den Viewportursprung relativ zu den Koordinaten des aktuellen Viewportursprungs.
CDC::OffsetWindowOrg Ändert den Fensterursprung relativ zu den Koordinaten des aktuellen Fensterursprungs.
CDC::PaintRgn Füllt einen Bereich mit dem ausgewählten Pinsel aus.
CDC::PatBlt Erstellt ein Bitmuster.
CDC::Pie Zeichnet einen kreisförmigen Keil.
CDC::PlayMetaFile Gibt den Inhalt der angegebenen Metadatei auf dem angegebenen Gerät wieder. Die erweiterte Version zeigt PlayMetaFile das Bild an, das in der angegebenen Metadatei im erweiterten Format gespeichert ist. Die Metadatei kann beliebig oft wiedergegeben werden.
CDC::PlgBlt Führt eine Bitblockübertragung der Bits von Farbdaten aus dem angegebenen Rechteck im Quellgerätekontext an das angegebene Parallelogramm im angegebenen Gerätekontext aus.
CDC::PolyBezier Zeichnet einen oder mehrere Bzier-Splines. Die aktuelle Position wird nicht verwendet oder aktualisiert.
CDC::PolyBezierTo Zeichnet einen oder mehrere Bzier-Splines und verschiebt die aktuelle Position an den Endpunkt der letzten Bzier-Spline.
CDC::PolyDraw Zeichnet eine Reihe von Liniensegmenten und Bzier-Splines. Diese Funktion aktualisiert die aktuelle Position.
CDC::Polygon Zeichnet ein Polygon, das aus zwei oder mehr Punkten (Scheitelpunkten) besteht, die durch Linien verbunden sind.
CDC::Polyline Zeichnet eine Reihe von Liniensegmenten, die die angegebenen Punkte verbinden.
CDC::PolylineTo Zeichnet eine oder mehrere gerade Linien und verschiebt die aktuelle Position an den Endpunkt der letzten Zeile.
CDC::PolyPolygon Erstellt zwei oder mehr Polygone, die mit dem aktuellen Polygonfüllmodus gefüllt sind. Die Polygone sind möglicherweise nicht zusammenhängend oder überlappend.
CDC::PolyPolyline Zeichnet mehrere Reihen verbundener Liniensegmente. Die aktuelle Position wird von dieser Funktion nicht verwendet oder aktualisiert.
CDC::PtVisible Gibt an, ob sich der angegebene Punkt innerhalb des Beschneidungsbereichs befindet.
CDC::RealizePalette Karten Paletteneinträge in der aktuellen logischen Palette der Systempalette.
CDC::Rectangle Zeichnet ein Rechteck mit dem aktuellen Stift und füllt es mit dem aktuellen Pinsel aus.
CDC::RectVisible Bestimmt, ob ein Teil des angegebenen Rechtecks innerhalb des Beschneidungsbereichs liegt.
CDC::ReleaseAttribDC Gibt m_hAttribDCden Attributgerätekontext frei.
CDC::ReleaseOutputDC Gibt m_hDCden Ausgabegerätekontext frei.
CDC::ResetDC Aktualisiert den m_hAttribDC Gerätekontext.
CDC::RestoreDC Stellt den Gerätekontext in einem vorherigen Zustand wieder her, der mit SaveDC.
CDC::RoundRect Zeichnet ein Rechteck mit abgerundeten Ecken mit dem aktuellen Stift und gefüllt mit dem aktuellen Pinsel.
CDC::SaveDC Speichert den aktuellen Zustand des Gerätekontexts.
CDC::ScaleViewportExt Ändert den Viewport-Umfang relativ zu den aktuellen Werten.
CDC::ScaleWindowExt Ändert die Fensterausdehnung relativ zu den aktuellen Werten.
CDC::ScrollDC Scrollt ein Rechteck von Bits horizontal und vertikal.
CDC::SelectClipPath Wählt den aktuellen Pfad als Clippingbereich für den Gerätekontext aus und kombiniert den neuen Bereich mit einem vorhandenen Clippingbereich mithilfe des angegebenen Modus.
CDC::SelectClipRgn Kombiniert den angegebenen Bereich mit dem aktuellen Clippingbereich mithilfe des angegebenen Modus.
CDC::SelectObject Wählt ein GDI-Zeichnungsobjekt wie einen Stift aus.
CDC::SelectPalette Wählt die logische Palette aus.
CDC::SelectStockObject Wählt einen der vordefinierten Stockstifte, Pinsel oder Schriftarten aus, die von Windows bereitgestellt werden.
CDC::SetAbortProc Legt eine vom Programmierer bereitgestellte Rückruffunktion fest, die Von Windows aufgerufen wird, wenn ein Druckauftrag abgebrochen werden muss.
CDC::SetArcDirection Legt die Zeichnungsrichtung fest, die für Bogen- und Rechteckfunktionen verwendet werden soll.
CDC::SetAttribDC Legt m_hAttribDCden Attributgerätekontext fest.
CDC::SetBkColor Legt die aktuelle Hintergrundfarbe fest.
CDC::SetBkMode Legt den Hintergrundmodus fest.
CDC::SetBoundsRect Steuert die Akkumulation von Begrenzungsrechteckinformationen für den angegebenen Gerätekontext.
CDC::SetBrushOrg Gibt den Ursprung für den nächsten Pinsel an, der in einem Gerätekontext ausgewählt ist.
CDC::SetColorAdjustment Legt die Farbanpassungswerte für den Gerätekontext mithilfe der angegebenen Werte fest.
CDC::SetDCBrushColor Legt die aktuelle Pinselfarbe fest.
CDC::SetDCPenColor Legt die aktuelle Stiftfarbe fest.
CDC::SetGraphicsMode Legt den aktuellen Grafikmodus für den angegebenen Gerätekontext fest.
CDC::SetLayout Ändert das Layout eines Gerätekontexts (DC).
CDC::SetMapMode Legt den aktuellen Zuordnungsmodus fest.
CDC::SetMapperFlags Ändert den Algorithmus, den der Schriftartzuordnung verwendet, wenn er logische Schriftarten physischen Schriftarten zuordnet.
CDC::SetMiterLimit Legt den Grenzwert für die Länge der Miter-Verknüpfungen für den Gerätekontext fest.
CDC::SetOutputDC Legt m_hDCden Ausgabegerätekontext fest.
CDC::SetPixel Legt das Pixel am angegebenen Punkt auf die näherste Annäherung der angegebenen Farbe fest.
CDC::SetPixelV Legt das Pixel an den angegebenen Koordinaten auf die nächste Annäherung der angegebenen Farbe fest. SetPixelV ist schneller, als SetPixel weil der Farbwert des gezeichneten Punkts nicht zurückgegeben werden muss.
CDC::SetPolyFillMode Legt den Polygonfüllmodus fest.
CDC::SetROP2 Legt den aktuellen Zeichnungsmodus fest.
CDC::SetStretchBltMode Legt den Bitmap-Stretchmodus fest.
CDC::SetTextAlign Legt die Textausrichtungskennzeichnungen fest.
CDC::SetTextCharacterExtra Legt die Menge des Intercharacterabstands fest.
CDC::SetTextColor Legt die Textfarbe fest.
CDC::SetTextJustification Fügt den Umbruchzeichen in einer Zeichenfolge Leerzeichen hinzu.
CDC::SetViewportExt Legt die x- und y-Erweiterung des Viewports fest.
CDC::SetViewportOrg Legt den Viewportursprung fest.
CDC::SetWindowExt Legt die x- und y-Erweiterung des zugeordneten Fensters fest.
CDC::SetWindowOrg Legt den Fensterursprung des Gerätekontexts fest.
CDC::SetWorldTransform Legt den aktuellen Weltbereich auf die Seitenbereichtransformation fest.
CDC::StartDoc Informiert den Gerätetreiber darüber, dass ein neuer Druckauftrag gestartet wird.
CDC::StartPage Informiert den Gerätetreiber darüber, dass eine neue Seite gestartet wird.
CDC::StretchBlt Verschiebt eine Bitmap aus einem Quellrechteck und Gerät in ein Zielrechteck, dehnt oder komprimiert die Bitmap, falls erforderlich, um die Abmessungen des Zielrechtecks anzupassen.
CDC::StrokeAndFillPath Schließt alle geöffneten Figuren in einem Pfad, durchstreicht den Umriss des Pfads mithilfe des aktuellen Stifts und füllt das Innere mithilfe des aktuellen Pinsels.
CDC::StrokePath Rendert den angegebenen Pfad mithilfe des aktuellen Stifts.
CDC::TabbedTextOut Schreibt eine Zeichenfolge an einer angegebenen Position und erweitert Tabstopps auf die werte, die in einem Array von Tabstopppositionen angegeben sind.
CDC::TextOut Schreibt eine Zeichenfolge an einer angegebenen Position mithilfe der aktuell ausgewählten Schriftart.
CDC::TransparentBlt Überträgt einen Bitblock von Farbdaten aus dem angegebenen Quellgerätekontext in einen Zielgerätekontext, wodurch eine angegebene Farbe transparent in der Übertragung gerendert wird.
CDC::UpdateColors Aktualisiert den Clientbereich des Gerätekontexts, indem die aktuellen Farben im Clientbereich der Systempalette auf Pixelbasis zugeordnet werden.
CDC::WidenPath Definiert den aktuellen Pfad als Bereich neu, der gezeichnet würde, wenn der Pfad mit dem aktuell im Gerätekontext ausgewählten Stift striche.

Öffentliche Operatoren

Name Beschreibung
CDC::operator HDC Ruft das Handle des Gerätekontexts ab.

Öffentliche Datenmember

Name Beschreibung
CDC::m_hAttribDC Der von diesem CDC Objekt verwendete Attributgerätekontext.
CDC::m_hDC Der von diesem CDC Objekt verwendete Ausgabegerätekontext.

Hinweise

Das CDC Objekt stellt Memberfunktionen zum Arbeiten mit einem Gerätekontext bereit, z. B. eine Anzeige oder einen Drucker, und Member zum Arbeiten mit einem Anzeigekontext, der dem Clientbereich eines Fensters zugeordnet ist.

Führen Sie alle Zeichnungen über die Memberfunktionen eines CDC Objekts aus. Die Klasse stellt Memberfunktionen für Gerätekontextvorgänge bereit, arbeitet mit Zeichentools, typsicherer Grafikgeräteschnittstelle (GDI)-Objektauswahl und Arbeiten mit Farben und Paletten. Darüber hinaus bietet es Memberfunktionen zum Abrufen und Festlegen von Zeichnungsattributen, Zuordnungen, Arbeiten mit dem Viewport, Arbeiten mit dem Fensterumfang, Konvertieren von Koordinaten, Arbeiten mit Bereichen, Clipping, Zeichnen von Linien und Zeichnen einfacher Formen, Auslassungspunkte und Polygone. Memberfunktionen werden auch zum Zeichnen von Text bereitgestellt, zum Arbeiten mit Schriftarten, zum Verwenden von Drucker-Escapes, Bildlauf und Wiedergeben von Metadateien.

Um ein CDC Objekt zu verwenden, erstellen Sie es, und rufen Sie dann die Memberfunktionen auf, die parallele Windows-Funktionen verwenden, die Gerätekontexte verwenden.

Hinweis

Unter Windows 95/98 sind alle Bildschirmkoordinaten auf 16 Bit beschränkt. Daher muss eine int an eine CDC Memberfunktion übergebene Funktion im Bereich -32768 bis 32767 liegen.

Für bestimmte Verwendungen stellt die Microsoft Foundation Class Library mehrere Klassen bereit, die von CDC . CPaintDC Kapselt Aufrufe an BeginPaint und EndPaint. CClientDC verwaltet einen Anzeigekontext, der dem Clientbereich eines Fensters zugeordnet ist. CWindowDC verwaltet einen Anzeigekontext, der einem gesamten Fenster zugeordnet ist, einschließlich des Rahmens und der Steuerelemente. CMetaFileDC ordnet einen Gerätekontext einer Metadatei zu.

CDC stellt zwei Memberfunktionen GetLayout bereit, und SetLayoutzum Umkehren des Layouts eines Gerätekontexts, der sein Layout nicht von einem Fenster erbt. Eine solche Rechts-nach-links-Ausrichtung ist für Anwendungen erforderlich, die für Kulturen geschrieben wurden, z. B. Arabisch oder Hebräisch, wobei das Zeichenlayout nicht der europäische Standard ist.

CDC enthält zwei Gerätekontexte und m_hDCm_hAttribDC, die beim Erstellen eines CDC Objekts auf dasselbe Gerät verweisen. CDC leitet alle GDI-Ausgabeaufrufe an m_hDC und die meisten Attribut-GDI-Aufrufe an m_hAttribDC. (Ein Beispiel für einen Attributaufruf ist GetTextColor, während SetTextColor es sich um einen Ausgabeaufruf handelt.)

Das Framework verwendet beispielsweise diese beiden Gerätekontexte, um ein CMetaFileDC Objekt zu implementieren, das die Ausgabe an eine Metadatei sendet, während Attribute von einem physischen Gerät gelesen werden. Die Seitenansicht wird im Framework auf ähnliche Weise implementiert. Sie können auch die beiden Gerätekontexte auf ähnliche Weise in Ihrem anwendungsspezifischen Code verwenden.

Es gibt Situationen, in denen Sie möglicherweise Textmetrikinformationen sowohl aus dem m_hDC Kontext m_hAttribDC als auch aus dem Gerätekontext benötigen. Die folgenden Funktionspaare stellen diese Funktion bereit:

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

Weitere Informationen CDCfinden Sie unter "Gerätekontexte".

Vererbungshierarchie

CObject

CDC

Anforderungen

Headerafxwin.h:

CDC::AbortDoc

Beendet den aktuellen Druckauftrag und löscht alles, was die Anwendung seit dem letzten Aufruf der StartDoc Memberfunktion auf das Gerät geschrieben hat.

int AbortDoc();

Rückgabewert

Ein Wert größer oder gleich 0, wenn dies erfolgreich war, oder ein negativer Wert, wenn ein Fehler aufgetreten ist. Die folgende Liste zeigt allgemeine Fehlerwerte und deren Bedeutungen:

  • SP_ERROR Allgemeiner Fehler.

  • SP_OUTOFDISK Nicht genügend Speicherplatz ist zurzeit für Spooling verfügbar, und es wird kein mehr Speicherplatz zur Verfügung gestellt.

  • SP_OUTOFMEMORY Nicht genügend Arbeitsspeicher ist für das Spooling verfügbar.

  • SP_USERABORT Der Benutzer hat den Auftrag über den Druck-Manager beendet.

Hinweise

Diese Memberfunktion ersetzt das ABORTDOC Drucker-Escapezeichen.

AbortDoc sollte verwendet werden, um Folgendes zu beenden:

  • Druckvorgänge, die keine Abgebrochene Funktion angeben.SetAbortProc

  • Druckvorgänge, die ihren ersten NEWFRAME oder NEXTBAND Escapeanruf noch nicht erreicht haben.

Wenn bei einer Anwendung ein Druckfehler oder ein abgebrochener Druckvorgang auftritt, darf es nicht versuchen, den Vorgang mithilfe der EndDoc Klassenfunktionen CDCoder AbortDoc Memberfunktionen zu beenden. GDI beendet den Vorgang automatisch, bevor der Fehlerwert zurückgegeben wird.

Wenn die Anwendung ein Dialogfeld anzeigt, damit der Benutzer den Druckvorgang abbrechen kann, muss er aufgerufen AbortDoc werden, bevor das Dialogfeld zerstört wird.

Wenn der Druck-Manager zum Starten des Druckauftrags verwendet wurde, löscht der Aufruf AbortDoc den gesamten Spoolauftrag – der Drucker erhält nichts. Wenn der Druck-Manager nicht zum Starten des Druckauftrags verwendet wurde, wurden die Daten möglicherweise vor AbortDoc dem Aufruf an den Drucker gesendet. In diesem Fall hätte der Druckertreiber den Drucker (sofern möglich) zurückgesetzt und den Druckauftrag geschlossen.

Beispiel

Sehen Sie sich das Beispiel für CDC::StartDoc.

CDC::AbortPath

Schließt alle Pfade im Gerätekontext und entfernt sie Karte.

BOOL AbortPath();

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Wenn im Gerätekontext eine offene Pfadklammer vorhanden ist, wird die Pfadklammer geschlossen, und der Pfad ist nicht Karte. Wenn im Gerätekontext ein geschlossener Pfad vorhanden ist, wird der Pfad nicht Karte.

CDC::AddMetaFileComment

Kopiert den Kommentar aus einem Puffer in eine angegebene Metadatei im erweiterten Format.

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

Parameter

nDataSize
Gibt die Länge des Kommentarpuffers in Bytes an.

pCommentData
Verweist auf den Puffer, der den Kommentar enthält.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Ein Kommentar kann private Informationen enthalten, z. B. die Quelle des Bilds und das Erstellungsdatum. Ein Kommentar sollte mit einer Anwendungssignatur beginnen, gefolgt von den Daten. Kommentare sollten keine positionsspezifischen Daten enthalten. Positionsspezifische Daten geben den Speicherort eines Datensatzes an und sollten nicht einbezogen werden, da eine Metadatei möglicherweise in eine andere Metadatei eingebettet werden kann. Diese Funktion kann nur mit erweiterten Metadateien verwendet werden.

CDC::AlphaBlend

Rufen Sie diese Memberfunktion auf, um Bitmaps mit transparenten oder halbtransparenten Pixeln anzuzeigen.

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

Parameter

xDest
Gibt die x-Koordinate in logischen Einheiten der oberen linken Ecke des Zielrechtecks an.

yDest
Gibt die y-Koordinate in logischen Einheiten der oberen linken Ecke des Zielrechtecks an.

nDestWidth
Gibt die Breite des Zielrechtecks in logischen Einheiten an.

nDestHeight
Gibt die Höhe des Zielrechtecks in logischen Einheiten an.

pSrcDC
Ein Zeiger auf den Quellgerätekontext.

xSrc
Gibt die x-Koordinate in logischen Einheiten der oberen linken Ecke des Quellrechtecks an.

ySrc
Gibt die y-Koordinate in logischen Einheiten der oberen linken Ecke des Quellrechtecks an.

nSrcWidth
Gibt die Breite des Quellrechtecks in logischen Einheiten an.

nSrcHeight
Gibt die Höhe des Quellrechtecks in logischen Einheiten an.

blend
Gibt eine BLENDFUNCTION Struktur an.

Rückgabewert

TRUE, wenn erfolgreich, andernfalls FALSE.

Hinweise

Weitere Informationen finden Sie AlphaBlend im Windows SDK.

CDC::AngleArc

Zeichnet ein Liniensegment und einen Bogen.

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

Parameter

x
Gibt die logische x-Koordinate des Kreismittelpunkts an.

y
Gibt die logische y-Koordinate des Kreismittelpunkts an.

nRadius
Gibt den Radius des Kreises in logischen Einheiten an. Dieser Wert muss positiv sein.

fStartAngle
Gibt den Anfangswinkel in Grad relativ zur X-Achse an.

fSweepAngle
Gibt den Aufräumwinkel in Grad relativ zum Anfangswinkel an.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Das Liniensegment wird von der aktuellen Position bis zum Anfang des Bogens gezeichnet. Der Bogen wird entlang des Umkreises eines Kreises mit dem angegebenen Radius und Mittelpunkt gezeichnet. Die Länge des Bogens wird durch den angegebenen Anfangs- und Aufräumenwinkel definiert.

AngleArc verschiebt die aktuelle Position an den Endpunkt des Bogens. Der von dieser Funktion gezeichnete Bogen kann je nach der aktuellen Transformation und dem Zuordnungsmodus als auslassungslos erscheinen. Vor dem Zeichnen des Bogens zeichnet diese Funktion das Liniensegment von der aktuellen Position bis zum Anfang des Bogens. Der Bogen wird gezeichnet, indem ein imaginärer Kreis mit dem angegebenen Radius um den angegebenen Mittelpunkt erstellt wird. Der Ausgangspunkt des Bogens wird durch Messung gegen den Uhrzeigersinn von der X-Achse des Kreises um die Anzahl der Grad im Anfangswinkel bestimmt. Der Endpunkt befindet sich ähnlich, indem der Gegenzeigersinn vom Ausgangspunkt um die Gradzahl im Aufräumwinkel gemessen wird.

Wenn der Aufräumwinkel größer als 360 Grad ist, wird der Bogen mehrmals geschwemmt. Diese Funktion zeichnet Linien mithilfe des aktuellen Stifts. Die Abbildung ist nicht ausgefüllt.

CDC::Arc

Zeichnet einen elliptischen Bogen.

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);

Parameter

x1
Gibt die X-Koordinate der oberen linken Ecke des umgebenden Rechtecks (in logischen Einheiten) an.

y1
Gibt die y-Koordinate der oberen linken Ecke des umgebenden Rechtecks (in logischen Einheiten) an.

x2
Gibt die x-Koordinate der unteren rechten Ecke des umgebenden Rechtecks (in logischen Einheiten) an.

y2
Gibt die y-Koordinate der unteren rechten Ecke des umgebenden Rechtecks (in logischen Einheiten) an.

x3
Gibt die x-Koordinate des Punkts an, der den Anfangspunkt des Bogens (in logischen Einheiten) definiert. Dieser Punkt muss nicht genau auf dem Bogen liegen.

y3
Gibt die y-Koordinate des Punkts an, der den Anfangspunkt des Bogens (in logischen Einheiten) definiert. Dieser Punkt muss nicht genau auf dem Bogen liegen.

x4
Gibt die x-Koordinate des Punkts an, der den Endpunkt des Bogens (in logischen Einheiten) definiert. Dieser Punkt muss nicht genau auf dem Bogen liegen.

y4
Gibt die y-Koordinate des Punkts an, der den Endpunkt des Bogens definiert (in logischen Einheiten). Dieser Punkt muss nicht genau auf dem Bogen liegen.

lpRect
Gibt das umgebende Rechteck (in logischen Einheiten) an. Sie können entweder ein LPRECT Objekt oder ein CRect Objekt für diesen Parameter übergeben.

ptStart
Gibt die x- und y-Koordinaten des Punkts an, der den Ausgangspunkt des Bogens (in logischen Einheiten) definiert. Dieser Punkt muss nicht genau auf dem Bogen liegen. Sie können entweder eine POINT Struktur oder ein CPoint Objekt für diesen Parameter übergeben.

ptEnd
Gibt die x- und y-Koordinaten des Punkts an, der den Endpunkt des Bogens (in logischen Einheiten) definiert. Dieser Punkt muss nicht genau auf dem Bogen liegen. Sie können entweder eine POINT Struktur oder ein CPoint Objekt für diesen Parameter übergeben.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Der mit der Funktion gezeichnete Bogen ist ein Segment der durch das angegebene Begrenzungsrechteck definierten Auslassungspunkte.

Der tatsächliche Ausgangspunkt des Bogens ist der Punkt, an dem ein Strahl aus der Mitte des umgebenden Rechtecks durch den angegebenen Ausgangspunkt die Auslassungspunkte überschneidet. Der tatsächliche Endpunkt des Bogens ist der Punkt, an dem ein Strahl aus der Mitte des umgebenden Rechtecks durch den angegebenen Endpunkt die Auslassungspunkte überschneidet. Der Bogen wird in gegen den Uhrzeigersinn gezeichnet. Da ein Bogen keine geschlossene Figur ist, ist er nicht gefüllt. Sowohl die Breite als auch die Höhe des Rechtecks müssen größer als 2 Einheiten und weniger als 32.767 Einheiten sein.

Beispiel

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

Zeichnet einen elliptischen Bogen.

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);

Parameter

x1
Gibt die X-Koordinate der oberen linken Ecke des umgebenden Rechtecks (in logischen Einheiten) an.

y1
Gibt die y-Koordinate der oberen linken Ecke des umgebenden Rechtecks (in logischen Einheiten) an.

x2
Gibt die x-Koordinate der unteren rechten Ecke des umgebenden Rechtecks (in logischen Einheiten) an.

y2
Gibt die y-Koordinate der unteren rechten Ecke des umgebenden Rechtecks (in logischen Einheiten) an.

x3
Gibt die x-Koordinate des Punkts an, der den Anfangspunkt des Bogens (in logischen Einheiten) definiert. Dieser Punkt muss nicht genau auf dem Bogen liegen.

y3
Gibt die y-Koordinate des Punkts an, der den Anfangspunkt des Bogens (in logischen Einheiten) definiert. Dieser Punkt muss nicht genau auf dem Bogen liegen.

x4
Gibt die x-Koordinate des Punkts an, der den Endpunkt des Bogens (in logischen Einheiten) definiert. Dieser Punkt muss nicht genau auf dem Bogen liegen.

y4
Gibt die y-Koordinate des Punkts an, der den Endpunkt des Bogens definiert (in logischen Einheiten). Dieser Punkt muss nicht genau auf dem Bogen liegen.

lpRect
Gibt das umgebende Rechteck (in logischen Einheiten) an. Sie können einen Zeiger entweder an eine RECT Datenstruktur oder ein CRect Objekt für diesen Parameter übergeben.

ptStart
Gibt die x- und y-Koordinaten des Punkts an, der den Ausgangspunkt des Bogens (in logischen Einheiten) definiert. Dieser Punkt muss nicht genau auf dem Bogen liegen. Sie können entweder eine POINT Datenstruktur oder ein CPoint Objekt für diesen Parameter übergeben.

ptEnd
Gibt die x- und y-Koordinaten des Punkts an, der den Endpunkt des Bogens (in logischen Einheiten) definiert. Dieser Punkt muss nicht genau auf dem Bogen liegen. Sie können entweder eine POINT Datenstruktur oder ein CPoint Objekt für diesen Parameter übergeben.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Diese Funktion ähnelt CDC::Arc, mit der Ausnahme, dass die aktuelle Position aktualisiert wird. Die Punkte ( x1, y1) und ( x2y2) geben das umgebende Rechteck an. Eine Ellipse, die durch das angegebene umgebende Rechteck gebildet wird, definiert die Kurve des Bogens. Der Bogen erstreckt sich gegen den Uhrzeigersinn (die Standardbogenrichtung) von dem Punkt, an dem er die Radiallinie von der Mitte des umgebenden Rechtecks bis ( *x3*, y3) überschneidet. Der Bogen endet, wo er die Radiallinie von der Mitte des umgebenden Rechtecks bis ( x4, y4) überschneidet. Wenn der Ausgangspunkt und der Endpunkt identisch sind, wird eine vollständige Auslassungspunkte gezeichnet.

Eine Linie wird von der aktuellen Position bis zum Ausgangspunkt des Bogens gezeichnet. Wenn kein Fehler auftritt, wird die aktuelle Position auf den Endpunkt des Bogens festgelegt. Der Bogen wird mit dem aktuellen Stift gezeichnet; es ist nicht ausgefüllt.

CDC::Attach

Verwenden Sie diese Memberfunktion, um ein hDC Objekt anzufügen CDC .

BOOL Attach(HDC hDC);

Parameter

hDC
Ein Windows-Gerätekontext.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Die hDC Datei wird sowohl m_hDCim Ausgabegerätekontext als auch im m_hAttribDCAttributgerätekontext gespeichert.

CDC::BeginPath

Öffnet eine Pfadklammer im Gerätekontext.

BOOL BeginPath();

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Nachdem eine Pfadklammer geöffnet ist, kann eine Anwendung mit dem Aufrufen von GDI-Zeichnungsfunktionen beginnen, um die Punkte zu definieren, die im Pfad liegen. Eine Anwendung kann eine offene Pfadklammer schließen, indem sie die EndPath Memberfunktion aufruft. Wenn eine Anwendung aufruftBeginPath, werden alle vorherigen Pfade nicht Karte.

Eine Liste der Zeichenfunktionen, die Punkte in einem Pfad definieren, finden Sie BeginPath im Windows SDK.

Beispiel

// 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

Kopiert eine Bitmap aus dem Quellgerätekontext in diesen aktuellen Gerätekontext.

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

Parameter

x
Gibt die logische x-Koordinate der oberen linken Ecke des Zielrechtecks an.

y
Gibt die logische y-Koordinate der oberen linken Ecke des Zielrechtecks an.

nWidth
Gibt die Breite (in logischen Einheiten) des Zielrechtecks und der Quellbitmap an.

nHeight
Gibt die Höhe (in logischen Einheiten) des Zielrechtecks und der Quellbitmap an.

pSrcDC
Zeigen Sie auf ein CDC Objekt, das den Gerätekontext identifiziert, aus dem die Bitmap kopiert wird. Es muss sein, wenn dwRop ein Rastervorgang angegeben wirdNULL, der keine Quelle enthält.

xSrc
Gibt die logische x-Koordinate der oberen linken Ecke der Quellbitmap an.

ySrc
Gibt die logische y-Koordinate der oberen linken Ecke der Quellbitmap an.

dwRop
Gibt das Raster des auszuführenden Vorgangs an. Rasteroperationscodes definieren, wie die GDI Farben in Ausgabevorgängen kombiniert, die einen aktuellen Pinsel, eine mögliche Quellbitmap und eine Zielbitmap enthalten. Eine Liste der Rastervorgangscodes und dwRop deren Beschreibungen finden Sie BitBlt im Windows SDK.

Eine vollständige Liste der Rastervorgangscodes finden Sie unter "Informationen zu Rastervorgangscodes " im Windows SDK.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Die Anwendung kann die Fenster- oder Clientbereiche an Bytegrenzen ausrichten, um sicherzustellen, dass die BitBlt Vorgänge auf Byte ausgerichteten Rechtecke erfolgen. (Legen Sie die CS_BYTEALIGNWINDOWCS_BYTEALIGNCLIENT Kennzeichen fest, wenn Sie die Fensterklassen registrieren.)

BitBlt Vorgänge auf Byte-ausgerichteten Rechtecke sind erheblich schneller als BitBlt Vorgänge auf Rechtecke, die nicht byte ausgerichtet sind. Wenn Sie Klassenformatvorlagen wie byte-Ausrichtung für Ihren eigenen Gerätekontext angeben möchten, müssen Sie eine Fensterklasse registrieren, anstatt sich auf die Microsoft Foundation-Klassen zu verlassen, um sie für Sie zu erledigen. Verwenden Sie die globale Funktion AfxRegisterWndClass.

GDI transformiert und nHeight, einmal mithilfe des Zielgerätekontexts nWidth und einmal mithilfe des Quellgerätekontexts. Wenn die resultierenden Ausmaße nicht übereinstimmen, verwendet GDI die Windows-Funktion StretchBlt , um die Quellbitmap nach Bedarf zu komprimieren oder zu strecken.

Wenn Ziel-, Quell- und Musterbitmaps nicht das gleiche Farbformat aufweisen, konvertiert die BitBlt Funktion die Quell- und Musterbitmaps so, dass sie mit dem Ziel übereinstimmen. Die Vordergrund- und Hintergrundfarben der Zielbitmap werden in der Konvertierung verwendet.

Wenn die BitBlt Funktion eine monochrome Bitmap in Farbe konvertiert, legt sie weiße Bits (1) auf die Hintergrundfarbe und schwarze Bits (0) auf die Vordergrundfarbe fest. Die Vordergrund- und Hintergrundfarben des Zielgerätekontexts werden verwendet. Um Farbe in Monochrom zu konvertieren, legt Pixel fest, BitBlt die der Hintergrundfarbe auf Weiß entsprechen, und legt alle anderen Pixel auf Schwarz fest. BitBlt verwendet die Vordergrund- und Hintergrundfarben des Farbgerätekontexts, um von Farbe in Monochrom zu konvertieren.

Nicht alle Gerätekontexte unterstützen BitBlt. Um zu überprüfen, ob ein bestimmter Gerätekontext unterstützt BitBltwird, verwenden Sie die GetDeviceCaps Memberfunktion, und geben Sie den RASTERCAPS-Index an.

Beispiel

Sehen Sie sich das Beispiel für CDC::CreateCompatibleDC.

CDC::CDC

Erstellt ein CDC-Objekt.

CDC();

CDC::Chord

Zeichnet einen Chor (eine geschlossene Figur, die durch den Schnittpunkt einer Ellipse und eines Liniensegments begrenzt ist).

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);

Parameter

x1
Gibt die x-Koordinate der oberen linken Ecke des umgebenden Rechtecks des Chors (in logischen Einheiten) an.

y1
Gibt die y-Koordinate der oberen linken Ecke des umgebenden Rechtecks des Chors (in logischen Einheiten) an.

x2
Gibt die X-Koordinate der unteren rechten Ecke des umgebenden Rechtecks des Chores (in logischen Einheiten) an.

y2
Gibt die y-Koordinate der unteren rechten Ecke des umgebenden Rechtecks des Chores (in logischen Einheiten) an.

x3
Gibt die x-Koordinate des Punkts an, der den Anfangspunkt des Chors (in logischen Einheiten) definiert.

y3
Gibt die y-Koordinate des Punkts an, der den Anfangspunkt des Chors (in logischen Einheiten) definiert.

x4
Gibt die x-Koordinate des Punkts an, der den Endpunkt des Chors (in logischen Einheiten) definiert.

y4
Gibt die y-Koordinate des Punkts an, der den Endpunkt des Chors (in logischen Einheiten) definiert.

lpRect
Gibt das umgebende Rechteck (in logischen Einheiten) an. Sie können entweder ein LPRECT Objekt oder ein CRect Objekt für diesen Parameter übergeben.

ptStart
Gibt die x- und y-Koordinaten des Punkts an, der den Ausgangspunkt des Chors (in logischen Einheiten) definiert. Dieser Punkt muss nicht genau auf dem Akkord liegen. Sie können entweder eine POINT Struktur oder ein CPoint Objekt für diesen Parameter übergeben.

*ptEnd*
Gibt die X- und Y-Koordinaten des Punkts an, der den Endpunkt des Chors (in logischen Einheiten) definiert. Dieser Punkt muss nicht genau auf dem Akkord liegen. Sie können entweder eine POINT Struktur oder ein CPoint Objekt für diesen Parameter übergeben.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Die Parameter ( , x1y1) und ( y2x2) geben die oberen linken und unteren rechten Ecken eines Rechtecks an, das die Ellipse begrenzt, die Teil des Akkords ist. Die Parameter ( x3, y3) und ( y4x4, ) geben die Endpunkte einer Linie an, die die Ellipse überschneidet. Der Akkord wird mit dem ausgewählten Stift gezeichnet und mit dem ausgewählten Pinsel gefüllt.

Die von der Chord Funktion gezeichnete Abbildung erstreckt sich bis zu, enthält aber nicht die rechten und unteren Koordinaten. Dies bedeutet, dass die Höhe der Abbildung und y2 - y1 die Breite der Abbildung ist.x2 - x1

Beispiel

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

Schließt eine geöffnete Abbildung in einem Pfad.

BOOL CloseFigure();

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Die Funktion schließt die Abbildung, indem eine Linie von der aktuellen Position bis zum ersten Punkt der Abbildung gezeichnet wird (in der Regel der durch den letzten Aufruf der MoveTo Memberfunktion angegebene Punkt) und die Linien mithilfe der Linienbeitrittsart verbunden werden. Wenn eine Abbildung mithilfe der LineTo Memberfunktion anstelle von CloseFigureKlammern geschlossen wird, werden Endkappen verwendet, um die Ecke anstelle einer Verknüpfung zu erstellen. CloseFigure sollte nur aufgerufen werden, wenn im Gerätekontext eine offene Pfadklammer vorhanden ist.

Eine Abbildung in einem Pfad ist geöffnet, es sei denn, sie wird mithilfe dieser Funktion explizit geschlossen. (Eine Abbildung kann geöffnet werden, auch wenn der aktuelle Punkt und der Ausgangspunkt der Abbildung identisch sind.) Jede Linie oder Kurve, die dem Pfad hinzugefügt wurde, nachdem CloseFigure eine neue Abbildung gestartet wurde.

CDC::CreateCompatibleDC

Erstellt einen Speichergerätekontext, der mit dem durch pDCangegebenen Gerät kompatibel ist.

BOOL CreateCompatibleDC(CDC* pDC);

Parameter

pDC
Ein Zeiger zu einem Gerätekontext. Wenn pDC ja NULL, erstellt die Funktion einen Speichergerätekontext, der mit der Systemanzeige kompatibel ist.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Ein Speichergerätekontext ist ein Speicherblock, der eine Anzeigeoberfläche darstellt. Es kann verwendet werden, um Bilder im Arbeitsspeicher vorzubereiten, bevor sie auf die tatsächliche Geräteoberfläche des kompatiblen Geräts kopiert werden.

Wenn ein Speichergerätekontext erstellt wird, wählt GDI automatisch eine 1:1 monochrome Stock-Bitmap dafür aus. GDI-Ausgabefunktionen können nur dann mit einem Speichergerätekontext verwendet werden, wenn eine Bitmap erstellt und in diesem Kontext ausgewählt wurde.

Diese Funktion kann nur verwendet werden, um kompatible Gerätekontexte für Geräte zu erstellen, die Rastervorgänge unterstützen. Informationen zu Bitblockübertragungen zwischen Gerätekontexten finden Sie in der CDC::BitBlt Memberfunktion. Informationen dazu, ob ein Gerätekontext Rastervorgänge unterstützt, finden Sie in der Memberfunktion CDC::GetDeviceCapsdie RC_BITBLT Rasterfunktion.

Beispiel

// 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

Erstellt einen Gerätekontext für das angegebene Gerät.

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

Parameter

lpszDriverName
Verweist auf eine mit Null beendete Zeichenfolge, die den Dateinamen (ohne Erweiterung) des Gerätetreibers (z. B. "EPSON") angibt. Sie können auch ein CString Objekt für diesen Parameter übergeben.

lpszDeviceName
Verweist auf eine mit Null beendete Zeichenfolge, die den Namen des zu unterstützenden Geräts angibt (z. B. "EPSON FX-80"). Der lpszDeviceName Parameter wird verwendet, wenn das Modul mehrere Geräte unterstützt. Sie können auch ein CString Objekt für diesen Parameter übergeben.

lpszOutput
Verweist auf eine mit Null beendete Zeichenfolge, die den Datei- oder Gerätenamen für das physische Ausgabemedium (Datei- oder Ausgabeport) angibt. Sie können auch ein CString Objekt für diesen Parameter übergeben.

lpInitData
Verweist auf eine DEVMODE Struktur, die gerätespezifische Initialisierungsdaten für den Gerätetreiber enthält. Die Windows-Funktion DocumentProperties ruft diese Struktur ab, die für ein bestimmtes Gerät ausgefüllt ist. Der lpInitData Parameter muss seinNULL, wenn der Gerätetreiber die Standardinitialisierung (falls vorhanden) verwendet, die vom Benutzer über die Systemsteuerung angegeben wird.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Die PRINT.H Headerdatei ist erforderlich, wenn die DEVMODE Struktur verwendet wird.

Gerätenamen folgen den folgenden Konventionen: ein Endpunkt (:) wird empfohlen, aber optional. Windows entfernt den endenden Doppelpunkt, sodass ein Gerätename, der mit einem Doppelpunkt endet, demselben Port zugeordnet ist wie derselbe Name ohne Doppelpunkt. Die Treiber- und Portnamen dürfen keine führenden oder nachfolgenden Leerzeichen enthalten. GDI-Ausgabefunktionen können nicht mit Informationskontexten verwendet werden.

CDC::CreateIC

Erstellt einen Informationskontext für das angegebene Gerät.

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

Parameter

lpszDriverName
Verweist auf eine mit Null beendete Zeichenfolge, die den Dateinamen (ohne Erweiterung) des Gerätetreibers (z. B. "EPSON") angibt. Sie können ein CString Objekt für diesen Parameter übergeben.

lpszDeviceName
Verweist auf eine mit Null beendete Zeichenfolge, die den Namen des zu unterstützenden Geräts angibt (z. B. "EPSON FX-80"). Der lpszDeviceName Parameter wird verwendet, wenn das Modul mehrere Geräte unterstützt. Sie können ein CString Objekt für diesen Parameter übergeben.

lpszOutput
Verweist auf eine mit Null beendete Zeichenfolge, die den Datei- oder Gerätenamen für das physische Ausgabemedium (Datei oder Port) angibt. Sie können ein CString Objekt für diesen Parameter übergeben.

lpInitData
Verweist auf gerätespezifische Initialisierungsdaten für den Gerätetreiber. Der lpInitData Parameter muss seinNULL, wenn der Gerätetreiber die Standardinitialisierung (falls vorhanden) verwendet, die vom Benutzer über die Systemsteuerung angegeben wird. Siehe CreateDC das Datenformat für die gerätespezifische Initialisierung.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Der Informationskontext bietet eine schnelle Möglichkeit, Informationen über das Gerät abzurufen, ohne einen Gerätekontext zu erstellen.

Gerätenamen folgen den folgenden Konventionen: ein Endpunkt (:) wird empfohlen, aber optional. Windows entfernt den endenden Doppelpunkt, sodass ein Gerätename, der mit einem Doppelpunkt endet, demselben Port zugeordnet ist wie derselbe Name ohne Doppelpunkt. Die Treiber- und Portnamen dürfen keine führenden oder nachfolgenden Leerzeichen enthalten. GDI-Ausgabefunktionen können nicht mit Informationskontexten verwendet werden.

CDC::DeleteDC

Rufen Sie diese Funktion im Allgemeinen nicht auf; der Destruktor wird es für Sie tun.

BOOL DeleteDC();

Rückgabewert

Nonzero, wenn die Funktion erfolgreich abgeschlossen wurde; andernfalls 0.

Hinweise

Die DeleteDC Memberfunktion löscht die Windows-Gerätekontexte, die dem aktuellen CDC Objekt zugeordnet m_hDC sind. Wenn dieses CDC Objekt der letzte aktive Gerätekontext für ein bestimmtes Gerät ist, werden alle vom Gerät verwendeten Speicher- und Systemressourcen freigegeben.

Eine Anwendung sollte nicht aufgerufen DeleteDC werden, wenn Objekte im Gerätekontext ausgewählt wurden. Objekte müssen zuerst aus dem Gerätekontext ausgewählt werden, bevor sie gelöscht werden.

Eine Anwendung darf keinen Gerätekontext löschen, dessen Handle durch Aufrufen CWnd::GetDCabgerufen wurde. Stattdessen muss der Gerätekontext freigegeben CWnd::ReleaseDC werden. Die CClientDC Klassen und CWindowDC Die Klassen werden bereitgestellt, um diese Funktionalität umzuschließen.

Die DeleteDC Funktion wird in der Regel verwendet, um Gerätekontexte zu löschen, die mit CreateDC, oder CreateICCreateCompatibleDC.

Beispiel

Sehen Sie sich das Beispiel für CPrintDialog::GetPrinterDC.

CDC::DeleteTempMap

Wird automatisch vom CWinApp Leerlaufzeithandler aufgerufen, werden alle temporären CDC Objekte gelöscht, DeleteTempMap die von FromHandleihnen erstellt wurden, aber die Gerätekontexthandles (hDCs) werden nicht vorübergehend den CDC Objekten zugeordnet.

static void PASCAL DeleteTempMap();

CDC::Detach

Rufen Sie diese Funktion auf, um (den Ausgabegerätekontext) vom CDC Objekt zu trennen m_hDC und sowohl als m_hAttribDC auch m_hDC auf .NULL

HDC Detach();

Rückgabewert

Ein Windows-Gerätekontext.

CDC::DPtoHIMETRIC

Verwenden Sie diese Funktion, wenn Sie OLE Größen zugeben HIMETRIC und Pixel in HIMETRIC.

void DPtoHIMETRIC(LPSIZE lpSize) const;

Parameter

lpSize
Verweist auf eine SIZE-Struktur oder CSize ein Objekt.

Hinweise

Wenn der Zuordnungsmodus des Gerätekontextobjekts MM_LOENGLISH, MM_HIENGLISH, MM_LOMETRICoder MM_HIMETRIC, ist, basiert die Konvertierung auf der Anzahl der Pixel im physischen Zoll. Wenn der Zuordnungsmodus eines der anderen nicht eingeschränkten Modi ist (z MM_TEXT. B. ), basiert die Konvertierung auf der Anzahl der Pixel im logischen Zoll.

CDC::DPtoLP

Konvertiert Geräteeinheiten in logische Einheiten.

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

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

Parameter

lpPoints
Verweist auf ein Array von POINT Strukturen oder CPoint Objekten.

nCount
Die Anzahl der Punkte im Array.

lpRect
Verweist auf eine Struktur oder CRect ein RECT Objekt. Dieser Parameter wird für den einfachen Fall verwendet, um ein Rechteck von Gerätepunkten in logische Punkte zu konvertieren.

lpSize
Verweist auf eine Struktur oder CSize ein SIZE Objekt.

Hinweise

Die Funktion ordnet die Koordinaten der einzelnen Punkte oder Dimensionen einer Größe vom Gerätekoordinatensystem in das logische Koordinatensystem von GDI zu. Die Konvertierung hängt vom aktuellen Zuordnungsmodus und den Einstellungen der Ursprünge und Erweiterungen für das Fenster und den Viewport des Geräts ab.

CDC::Draw3dRect

Rufen Sie diese Memberfunktion auf, um ein dreidimensionales Rechteck zu zeichnen.

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

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

Parameter

lpRect
Gibt das umgebende Rechteck (in logischen Einheiten) an. Sie können entweder einen Zeiger an eine RECT Struktur oder ein CRect Objekt für diesen Parameter übergeben.

clrTopLeft
Gibt die Farbe der oberen und linken Seite des dreidimensionalen Rechtecks an.

clrBottomRight
Gibt die Farbe der unteren und rechten Seiten des dreidimensionalen Rechtecks an.

x
Gibt die logische x-Koordinate der oberen linken Ecke des dreidimensionalen Rechtecks an.

y
Gibt die logische y-Koordinate der oberen linken Ecke des dreidimensionalen Rechtecks an.

cx
Gibt die Breite des dreidimensionalen Rechtecks an.

cy
Gibt die Höhe des dreidimensionalen Rechtecks an.

Hinweise

Das Rechteck wird mit den oberen und linken Seiten in der farbe gezeichnet, die durch clrTopLeft und die untere und rechte Seite in der farbe angegeben wird clrBottomRight.

Beispiel

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

Rufen Sie diese Memberfunktion wiederholt auf, um ein Ziehrechteck neu zu zeichnen.

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

Parameter

lpRect
Verweist auf eine RECT Struktur oder ein CRect Objekt, das die logischen Koordinaten eines Rechtecks angibt – in diesem Fall die Endposition des Rechtecks, das neu gezeichnet wird.

size
Gibt die Verschiebung von der oberen linken Ecke des äußeren Rahmens zur oberen linken Ecke des inneren Rahmens (d. h. die Stärke des Rahmens) eines Rechtecks an.

lpRectLast
Verweist auf eine RECT Struktur oder ein CRect Objekt, das die logischen Koordinaten der Position eines Rechtecks angibt , in diesem Fall die ursprüngliche Position des Rechtecks, das neu gezeichnet wird.

sizeLast
Gibt die Verschiebung von der oberen linken Ecke des äußeren Rahmens zur oberen linken Ecke des inneren Rahmens (d. h. die Stärke des Rahmens) des ursprünglichen Rechtecks an, das neu gezeichnet wird.

pBrush
Zeiger auf ein Pinselobjekt. Legen Sie fest, dass NULL der Standard-Halbtonpinsel verwendet werden soll.

pBrushLast
Zeiger auf das zuletzt verwendete Pinselobjekt. Legen Sie fest, dass NULL der Standard-Halbtonpinsel verwendet werden soll.

Hinweise

Rufen Sie sie als Beispiel für die Mausposition in einer Schleife auf, um visuelles Feedback zu geben. Beim Aufrufen DrawDragRectwird das vorherige Rechteck gelöscht und ein neues gezeichnet. Wenn der Benutzer beispielsweise ein Rechteck über den Bildschirm zieht, DrawDragRect wird das ursprüngliche Rechteck gelöscht und ein neues Rechteck an seiner neuen Position neu gezeichnet. Zeichnet standardmäßig das Rechteck mithilfe eines Halbtonpinsels, DrawDragRect um Flimmer zu vermeiden und das Erscheinungsbild eines reibungslos bewegten Rechtecks zu erzeugen.

Wenn Sie zum ersten Mal aufrufenDrawDragRect, sollte NULLder lpRectLast Parameter sein.

CDC::DrawEdge

Rufen Sie diese Memberfunktion auf, um die Ränder eines Rechtecks des angegebenen Typs und der angegebenen Formatvorlage zu zeichnen.

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

Parameter

lpRect
Ein Zeiger auf eine RECT Struktur, die die logischen Koordinaten des Rechtecks enthält.

nEdge
Gibt den Typ des zu zeichnenden inneren und äußeren Rands an. Dieser Parameter muss eine Kombination aus einer inneren Rahmenkennzeichnung und einer äußeren Rahmenkennzeichnung sein. Eine Tabelle der Parametertypen finden Sie DrawEdge im Windows SDK.

nFlags
Die Kennzeichen, die den zu zeichnenden Rahmentyp angeben. Eine Tabelle mit den Werten des Parameters finden Sie DrawEdge im Windows SDK. Bei diagonalen Linien geben die BF_RECT Flags den Endpunkt des Vektors an, der durch den Rechteckparameter begrenzt ist.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

CDC::DrawEscape

Greift auf Zeichenfunktionen einer Videoanzeige zu, die nicht direkt über die Grafikgeräteschnittstelle (Graphics Device Interface, GDI) verfügbar sind.

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

Parameter

nEscape
Gibt die escape-Funktion an, die ausgeführt werden soll.

nInputSize
Gibt die Anzahl der Byte von Daten an, auf die der lpszInputData Parameter verweist.

lpszInputData
Verweist auf die für das angegebene Escapezeichen erforderliche Eingabestruktur.

Rückgabewert

Gibt das Ergebnis der Funktion an. Größer als Null bei erfolgreicher Ausführung, mit Ausnahme des QUERYESCSUPPORT Draw-Escapezeichens, bei dem nur die Implementierung überprüft wird, oder null, wenn das Escapezeichen nicht implementiert ist; oder kleiner als 0, wenn ein Fehler aufgetreten ist.

Hinweise

Wenn eine Anwendung aufruft DrawEscape, werden die von nInputSize ihnen identifizierten Daten lpszInputData direkt an den angegebenen Anzeigetreiber übergeben.

CDC::DrawFocusRect

Zeichnet ein Rechteck in der Formatvorlage, das verwendet wird, um anzugeben, dass das Rechteck den Fokus hat.

void DrawFocusRect(LPCRECT lpRect);

Parameter

lpRect
Verweist auf eine RECT Struktur oder ein CRect Objekt, das die logischen Koordinaten des zu zeichnenden Rechtecks angibt.

Hinweise

Da es sich um eine boolesche XOR ()-Funktion handelt^, wird durch aufrufen dieser Funktion ein zweites Mal mit demselben Rechteck das Rechteck aus der Anzeige entfernt. Das von dieser Funktion gezeichnete Rechteck kann nicht gescrollt werden. Um einen Bereich zu scrollen, der ein von dieser Funktion gezeichnetes Rechteck enthält, rufen Sie DrawFocusRect zuerst auf, um das Rechteck aus der Anzeige zu entfernen, scrollen Sie dann in den Bereich, und rufen Sie dann erneut auf DrawFocusRect , um das Rechteck an der neuen Position zu zeichnen.

Achtung

DrawFocusRect funktioniert nur im MM_TEXT Modus. In anderen Modi zeichnet diese Funktion das Fokusrechteck nicht richtig, gibt jedoch keine Fehlerwerte zurück.

CDC::DrawFrameControl

Rufen Sie diese Memberfunktion auf, um ein Framesteuerelement des angegebenen Typs und der angegebenen Formatvorlage zu zeichnen.

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

Parameter

lpRect
Ein Zeiger auf eine RECT Struktur, die die logischen Koordinaten des Rechtecks enthält.

nType
Gibt den Typ des zu zeichnenden Framesteuerelements an. uType Eine Liste der möglichen Werte dieses Parameters finden Sie im DrawFrameControl Windows SDK.

nState
Gibt den Anfangszustand des Framesteuerelements an. Dabei kann es sich um einen oder mehrere der werte handeln, die für den uState Parameter im DrawFrameControl Windows SDK beschrieben werden. Verwenden Sie den nState Wert DFCS_ADJUSTRECT , um das umgebende Rechteck anzupassen, um den umgebenden Rand der Schaltfläche auszuschließen.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

In mehreren Fällen nState hängt dies vom nType Parameter ab. Die folgende Liste zeigt die Beziehung zwischen den vier nType Werten und nState:

  • DFC_BUTTON

    • DFCS_BUTTON3STATE Schaltfläche mit drei Status

    • DFCS_BUTTONCHECK Kontrollkästchen

    • DFCS_BUTTONPUSH Knopfdruck

    • DFCS_BUTTONRADIO Optionsfeld

    • DFCS_BUTTONRADIOIMAGE Bild für Optionsfeld (Nichtquare erfordert Bild)

    • DFCS_BUTTONRADIOMASK Mask für Optionsfeld (Nonsquare needs mask)

  • DFC_CAPTION

    • DFCS_CAPTIONCLOSE Schaltfläche "Schließen"

    • DFCS_CAPTIONHELP Schaltfläche "Hilfe"

    • DFCS_CAPTIONMAX Schaltfläche "Maximieren"

    • DFCS_CAPTIONMIN Schaltfläche "Minimieren"

    • DFCS_CAPTIONRESTORE Schaltfläche "Wiederherstellen"

  • DFC_MENU

    • DFCS_MENUARROW Untermenüpfeil

    • DFCS_MENUBULLET Kugel

    • DFCS_MENUCHECK Häkchen

  • DFC_SCROLL

    • DFCS_SCROLLCOMBOBOX Bildlaufleiste für Kombinationsfeld

    • DFCS_SCROLLDOWN NACH-UNTEN-TASTE der Bildlaufleiste

    • DFCS_SCROLLLEFT NACH-LINKS-TASTE der Bildlaufleiste

    • DFCS_SCROLLRIGHT Pfeil nach rechts der Bildlaufleiste

    • DFCS_SCROLLSIZEGRIP Größenziehpunkt in der unteren rechten Ecke des Fensters

    • DFCS_SCROLLUP NACH-OBEN-TASTE der Bildlaufleiste

Beispiel

Dieser Code zeichnet den Ziehpunkt für die Größe in der unteren rechten Ecke des Fensters. Es ist für den OnPaint Handler eines Dialogfelds geeignet, das keine Formatvorlagen enthält und normalerweise keine anderen Steuerelemente (z. B. eine Statusleiste) enthält, die ihm möglicherweise ein Ziehelement für die Größe verleihen.

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

Zeichnet ein Symbol auf dem Gerät, das durch das aktuelle CDC Objekt dargestellt wird.

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

BOOL DrawIcon(
    POINT point,
    HICON hIcon);

Parameter

x
Gibt die logische x-Koordinate der oberen linken Ecke des Symbols an.

y
Gibt die logische y-Koordinate der oberen linken Ecke des Symbols an.

hIcon
Gibt den Ziehpunkt des zu zeichnenden Symbols an.

point
Gibt die logischen x- und y-Koordinaten der oberen linken Ecke des Symbols an. Sie können eine POINT Struktur oder ein CPoint Objekt für diesen Parameter übergeben.

Rückgabewert

Nonzero, wenn die Funktion erfolgreich abgeschlossen wurde; andernfalls 0.

Hinweise

Die Funktion platziert die obere linke Ecke des Symbols an der durch x und y. Der Standort unterliegt dem aktuellen Zuordnungsmodus des Gerätekontexts.

Die Symbolressource muss zuvor mit den Funktionen CWinApp::LoadIcon, oder CWinApp::LoadStandardIconCWinApp::LoadOEMIcon. Der MM_TEXT Zuordnungsmodus muss vor der Verwendung dieser Funktion ausgewählt werden.

Beispiel

Sehen Sie sich das Beispiel für CWnd::IsIconic.

CDC::DrawState

Rufen Sie diese Memberfunktion auf, um ein Bild anzuzeigen und einen visuellen Effekt anzuwenden, um einen Zustand anzuzeigen, z. B. einen deaktivierten oder Standardzustand.

Hinweis

Für alle nFlag Zustände außer DSS_NORMALwird das Bild vor der Anwendung des visuellen Effekts in Monochrom konvertiert.

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);

Parameter

pt
Gibt die Position des Bilds an.

size
Gibt die Größe des Bilds an.

hBitmap
Ein Handle zu einer Bitmap.

nFlags
Flags, die den Bildtyp und -zustand angeben. Die möglichen nFlags-Typen und -Zustände finden Sie DrawState im Windows SDK.

hBrush
Ein Griff zu einem Pinsel.

pBitmap
Ein Zeiger auf ein CBitmap-Objekt.

pBrush
Ein Zeiger auf ein CBrush-Objekt.

hIcon
Ein Handle zu einem Symbol.

lpszText
Ein Zeiger auf Text.

bPrefixText
Text, der eine Zugriffstasten-Mnemonic enthalten kann. Der lData Parameter gibt die Adresse der Zeichenfolge an, und der nTextLen Parameter gibt die Länge an. Wenn nTextLen 0 ist, wird davon ausgegangen, dass die Zeichenfolge null-beendet ist.

nTextLen
Länge der Textzeichenfolge, auf die lpszTextdurch . Wenn nTextLen 0 ist, wird davon ausgegangen, dass die Zeichenfolge null-beendet ist.

lpDrawProc
Ein Zeiger auf eine Rückruffunktion, die zum Rendern eines Bilds verwendet wird. Dieser Parameter ist erforderlich, wenn der Bildtyp angegeben nFlags ist DST_COMPLEX. Es ist optional und kann sein NULL , wenn der Bildtyp ist DST_TEXT. Für alle anderen Bildtypen wird dieser Parameter ignoriert. Weitere Informationen zur Rückruffunktion finden Sie in der DrawStateProc Funktion im Windows SDK.

lData
Gibt Informationen zum Bild an. Die Bedeutung dieses Parameters hängt vom Bildtyp ab.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

CDC::DrawText

Rufen Sie diese Memberfunktion auf, um Text im angegebenen Rechteck zu formatieren. Um weitere Formatierungsoptionen anzugeben, verwenden Sie CDC::DrawTextEx.

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

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

Parameter

lpszString
Verweist auf die zu zeichnende Zeichenfolge. Wenn nCount -1 ist, muss die Zeichenfolge null-beendet sein.

nCount
Gibt die Anzahl der Zeichen in der Zeichenfolge an. Wenn nCount -1 ist, wird angenommen, lpszString dass er ein langer Zeiger auf eine null-beendete Zeichenfolge ist und DrawText die Zeichenanzahl automatisch berechnet.

lpRect
Verweist auf eine Struktur oder CRect ein RECT Objekt, das das Rechteck (in logischen Koordinaten) enthält, in dem der Text formatiert werden soll.

str
Ein CString Objekt, das die angegebenen Zeichen enthält, die gezeichnet werden sollen.

nFormat
Gibt die Methode zum Formatieren des Texts an. Dabei kann es sich um eine beliebige Kombination der für den uFormat Parameter im DrawText Windows SDK beschriebenen Werte handeln. (kombinieren Sie den bitweisen OR-Operator):

Hinweis

Einige uFormat Kennzeichenkombinationen können dazu führen, dass die übergebene Zeichenfolge geändert wird. Die Verwendung DT_MODIFYSTRING mit oder DT_PATH_ELLIPSISDT_END_ELLIPSIS kann dazu führen, dass die Zeichenfolge geändert wird, was zu einer Assertion in der CString Außerkraftsetzung führt. Die Werte DT_CALCRECT, , DT_EXTERNALLEADING, DT_INTERNAL, DT_NOCLIPund DT_NOPREFIX können nicht mit dem DT_TABSTOP Wert verwendet werden.

Rückgabewert

Die Höhe des Texts, wenn die Funktion erfolgreich ist.

Hinweise

Es formatiert Text durch Erweitern von Tabstopps in geeignete Leerzeichen, Ausrichten von Text links, rechts oder zentriert des angegebenen Rechtecks und Aufteilen von Text in Zeilen, die in das angegebene Rechteck passen. Der Formatierungstyp wird durch nFormatangegeben.

Diese Memberfunktion verwendet die ausgewählte Schriftart, Textfarbe und Hintergrundfarbe des Gerätekontexts, um den Text zu zeichnen. Wenn das DT_NOCLIP Format nicht verwendet wird, wird der Text ausgeschnitten, DrawText sodass der Text nicht außerhalb des angegebenen Rechtecks angezeigt wird. Es wird davon ausgegangen, dass alle Formatierungen mehrere Zeilen aufweisen, es sei denn, das DT_SINGLELINE Format wird angegeben.

Wenn die ausgewählte Schriftart für das angegebene Rechteck zu groß ist, versucht die DrawText Memberfunktion nicht, eine kleinere Schriftart zu ersetzen.

Wenn die DT_CALCRECT Kennzeichnung angegeben ist, wird das durch lpRect das angegebene Rechteck aktualisiert, um die Breite und Höhe widerzuspiegeln, die zum Zeichnen des Texts erforderlich ist.

Wenn das Flag für die TA_UPDATECP Textausrichtung festgelegt wurde (siehe CDC::SetTextAlign), DrawText wird Text angezeigt, der an der aktuellen Position beginnt, und nicht links neben dem angegebenen Rechteck. DrawText wird Text nicht umbrochen, wenn das TA_UPDATECP Flag festgelegt wurde (d. h. das DT_WORDBREAK Flag hat keine Auswirkung).

Die Textfarbe kann von CDC::SetTextColor.

CDC::DrawTextEx

Formatiert Text im angegebenen Rechteck.

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

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

Parameter

lpszString
Verweist auf die zu zeichnende Zeichenfolge. Wenn nCount -1 ist, muss die Zeichenfolge null beendet sein.

nCount
Gibt die Anzahl der Zeichen in der Zeichenfolge an. Wenn nCount -1 ist, wird angenommen, lpszString dass er ein langer Zeiger auf eine null-beendete Zeichenfolge ist und DrawText die Zeichenanzahl automatisch berechnet.

lpRect
Verweist auf eine Struktur oder CRect ein RECT Objekt, das das Rechteck (in logischen Koordinaten) enthält, in dem der Text formatiert werden soll.

str
Ein CString Objekt, das die angegebenen Zeichen enthält, die gezeichnet werden sollen.

nFormat
Gibt die Methode zum Formatieren des Texts an. Dabei kann es sich um eine beliebige Kombination der für den uFormat Parameter im DrawText Windows SDK beschriebenen Werte handeln. (Kombinieren mit bitweiser VerwendungOR-Operator ):

Hinweis

Einige uFormat Kennzeichenkombinationen können dazu führen, dass die übergebene Zeichenfolge geändert wird. Die Verwendung DT_MODIFYSTRING mit oder DT_PATH_ELLIPSISDT_END_ELLIPSIS kann dazu führen, dass die Zeichenfolge geändert wird, was zu einer Assertion in der CString Außerkraftsetzung führt. Die Werte DT_CALCRECT, , DT_EXTERNALLEADING, DT_INTERNAL, DT_NOCLIPund DT_NOPREFIX können nicht mit dem DT_TABSTOP Wert verwendet werden.

lpDTParams
Zeigen Sie auf eine DRAWTEXTPARAMS Struktur, die weitere Formatierungsoptionen angibt. Dieser Parameter kann NULL sein.

Hinweise

Es formatiert Text durch Erweitern von Tabstopps in geeignete Leerzeichen, Ausrichten von Text links, rechts oder zentriert des angegebenen Rechtecks und Aufteilen von Text in Zeilen, die in das angegebene Rechteck passen. Der Formatierungstyp wird durch nFormat und lpDTParams. Weitere Informationen finden Sie unter CDC::DrawText und DrawTextEx im Windows SDK.

Die Textfarbe kann von CDC::SetTextColor.

CDC::Ellipse

Zeichnet eine Ellipse.

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

BOOL Ellipse(LPCRECT lpRect);

Parameter

x1
Gibt die logische x-Koordinate der oberen linken Ecke des umgebenden Rechtecks der Ellipse an.

y1
Gibt die logische y-Koordinate der oberen linken Ecke des umgebenden Rechtecks der Ellipse an.

x2
Gibt die logische x-Koordinate der unteren rechten Ecke des umgebenden Rechtecks der Ellipse an.

y2
Gibt die logische y-Koordinate der unteren rechten Ecke des umgebenden Rechtecks der Ellipse an.

lpRect
Gibt das umgebende Rechteck der Ellipse an. Sie können auch ein CRect Objekt für diesen Parameter übergeben.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Die Mitte der Auslassungspunkte ist die Mitte des umgebenden Rechtecks, das durch x1, y1, x2, und , und y2, oder lpRect. Die Ellipse wird mit dem aktuellen Stift gezeichnet, und sein Inneres wird mit dem aktuellen Pinsel gefüllt.

Die von dieser Funktion gezeichnete Abbildung erstreckt sich bis zu den rechten und unteren Koordinaten. Dies bedeutet, dass die Höhe der Abbildung und y2 - y1 die Breite der Abbildung ist.x2 - x1

Wenn entweder die Breite oder die Höhe des umgebenden Rechtecks 0 ist, wird keine Ellipse gezeichnet.

CDC::EndDoc

Beendet einen Druckauftrag, der von einem Aufruf der StartDoc Memberfunktion gestartet wurde.

int EndDoc();

Rückgabewert

Größer als oder gleich 0, wenn die Funktion erfolgreich ist, oder ein negativer Wert, wenn ein Fehler aufgetreten ist.

Hinweise

Diese Memberfunktion ersetzt den ENDDOC Drucker escape und sollte unmittelbar nach abschluss eines erfolgreichen Druckauftrags aufgerufen werden.

Wenn bei einer Anwendung ein Druckfehler oder ein abgebrochener Druckvorgang auftritt, darf nicht versucht werden, den Vorgang mit einem oder einem EndDoc abgebrochenen AbortDocVorgang zu beenden. GDI beendet den Vorgang automatisch, bevor der Fehlerwert zurückgegeben wird.

Diese Funktion sollte nicht in Metadateien verwendet werden.

Beispiel

Sehen Sie sich das Beispiel für CDC::StartDoc.

CDC::EndPage

Informiert das Gerät, dass die Anwendung das Schreiben auf einer Seite abgeschlossen hat.

int EndPage();

Rückgabewert

Größer als oder gleich 0, wenn die Funktion erfolgreich ist, oder ein negativer Wert, wenn ein Fehler aufgetreten ist.

Hinweise

Diese Memberfunktion wird in der Regel verwendet, um den Gerätetreiber auf eine neue Seite zu leiten.

Diese Memberfunktion ersetzt das NEWFRAME Drucker-Escapezeichen. Im Gegensatz dazu NEWFRAMEwird diese Funktion immer nach dem Drucken einer Seite aufgerufen.

Beispiel

Sehen Sie sich das Beispiel für CDC::StartDoc.

CDC::EndPath

Schließt eine Pfadklammer und wählt den durch die Klammer definierten Pfad in den Gerätekontext aus.

BOOL EndPath();

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Beispiel

Sehen Sie sich das Beispiel für CDC::BeginPath.

CDC::EnumObjects

Listet die Stifte und Pinsel auf, die in einem Gerätekontext verfügbar sind.

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

Parameter

nObjectType
Gibt den Objekttyp an. Er kann die Werte OBJ_BRUSH oder OBJ_PEN.

lpfn
Ist die Prozedurinstanzadresse der von der Anwendung bereitgestellten Rückruffunktion. Weitere Informationen finden Sie im Abschnitt "Hinweise" weiter unten.

lpData
Verweist auf die von der Anwendung bereitgestellten Daten. Die Daten werden zusammen mit den Objektinformationen an die Rückruffunktion übergeben.

Rückgabewert

Gibt den letzten Wert an, der von der Rückruffunktion zurückgegeben wird. Seine Bedeutung ist benutzerdefinierter.

Hinweise

Für jedes Objekt eines bestimmten Typs wird die rückruffunktion, die Sie übergeben, mit den Informationen für dieses Objekt aufgerufen. Das System ruft die Rückruffunktion auf, bis keine objekte mehr vorhanden sind oder die Rückruffunktion "0" zurückgibt.

Mit neuen Features von Microsoft Visual C++ können Sie eine normale Funktion als an die Übergebene EnumObjectsFunktion verwenden. Die an die Adresse übergebene EnumObjects Adresse ist ein Zeiger auf eine Funktion, die mit EXPORT und mit der Pascal-Aufrufkonvention exportiert wird. In Schutzmodusanwendungen müssen Sie diese Funktion nicht mit der Windows-Funktion MakeProcInstance erstellen oder die Funktion nach der Verwendung mit der FreeProcInstance Windows-Funktion freigeben.

Sie müssen den Funktionsnamen auch nicht in eine EXPORTS Anweisung in der Moduldefinitionsdatei Ihrer Anwendung exportieren. Sie können stattdessen den EXPORT Funktionsmodifizierer wie in

int CALLBACK EXPORT AFunction (LPSTR, LPSTR);

der Compiler bewirkt, dass der richtige Exportdatensatz für den Export nach Namen ohne Alias ausgegeben wird. Dies funktioniert für die meisten Anforderungen. Für einige spezielle Fälle, z. B. das Exportieren einer Funktion nach Ordinal oder Aliasing des Exports, müssen Sie dennoch eine EXPORTS Anweisung in einer Moduldefinitionsdatei verwenden.

Zum Kompilieren von Microsoft Foundation-Programmen verwenden Sie normalerweise die /GA Optionen und /GEs Compileroptionen. Die /Gw Compileroption wird nicht mit den Microsoft Foundation-Klassen verwendet. (Wenn Sie die Windows-Funktion MakeProcInstanceverwenden, müssen Sie den zurückgegebenen Funktionszeiger explizit in FARPROC den Typ umwandeln, der in dieser API erforderlich ist.) Rückrufregistrierungsschnittstellen sind jetzt typsicher (Sie müssen einen Funktionszeiger übergeben, der auf die richtige Art von Funktion für den spezifischen Rückruf verweist).

Außerdem müssen alle Rückruffunktionen Microsoft Foundation-Ausnahmen abfangen, bevor sie zu Windows zurückkehren, da Ausnahmen nicht über Rückrufgrenzen hinweg ausgelöst werden können. Weitere Informationen zu Ausnahmen finden Sie im Artikel "Ausnahmen".

Beispiel

// 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

Diese Memberfunktion ist praktisch veraltet für die Win32-Programmierung.

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

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

Parameter

nEscape
Gibt die escape-Funktion an, die ausgeführt werden soll.

Eine vollständige Liste der Escapefunktionen finden Sie Escape im Windows SDK.

nCount
Gibt die Anzahl der Byte an, auf die lpszInDataverwiesen wird.

lpszInData
Verweist auf die für dieses Escape erforderliche Eingabedatenstruktur.

lpOutData
Verweist auf die Struktur, die ausgabe von diesem Escapezeichen empfangen soll. Der lpOutData Parameter ist NULL , wenn keine Daten zurückgegeben werden.

nInputSize
Gibt die Anzahl der Byte von Daten an, auf die der lpszInputData Parameter verweist.

lpszInputData
Verweist auf die für das angegebene Escapezeichen erforderliche Eingabestruktur.

nOutputSize
Gibt die Anzahl der Byte von Daten an, auf die der lpszOutputData Parameter verweist.

lpszOutputData
Verweist auf die Struktur, die ausgabe von diesem Escapezeichen empfängt. Dieser Parameter sollte sein NULL , wenn keine Daten zurückgegeben werden.

Rückgabewert

Ein positiver Wert wird zurückgegeben, wenn die Funktion erfolgreich ist, mit Ausnahme des QUERYESCSUPPORT Escapezeichens, das nur die Implementierung überprüft. Null wird zurückgegeben, wenn das Escapezeichen nicht implementiert ist. Wenn ein Fehler aufgetreten ist, wird ein negativer Wert zurückgegeben. Im Folgenden finden Sie allgemeine Fehlerwerte:

  • SP_ERROR Allgemeiner Fehler.

  • SP_OUTOFDISK Nicht genügend Speicherplatz ist zurzeit für Spooling verfügbar, und es wird kein mehr Speicherplatz zur Verfügung gestellt.

  • SP_OUTOFMEMORY Nicht genügend Arbeitsspeicher ist für das Spooling verfügbar.

  • SP_USERABORT Der Benutzer hat den Auftrag über den Druck-Manager beendet.

Hinweise

Von den ursprünglichen Drucker-Escapes wird nur QUERYESCSUPPORT für Win32-Anwendungen unterstützt. Alle anderen Drucker escapes sind veraltet und werden nur für Kompatibilität mit 16-Bit-Anwendungen unterstützt.

Für die Win32-Programmierung werden jetzt sechs Memberfunktionen bereitgestellt, CDC die die entsprechenden Drucker escapes ersetzen:

Darüber hinaus unterstützt Win32-Indizes, CDC::GetDeviceCaps die andere Drucker escapes ersetzen. Weitere Informationen finden Sie GetDeviceCaps im Windows SDK.

Diese Memberfunktion ermöglicht Anwendungen den Zugriff auf Einrichtungen eines bestimmten Geräts, die nicht direkt über GDI verfügbar sind.

Verwenden Sie die erste Version, wenn Ihre Anwendung vordefinierte Escapewerte verwendet. Verwenden Sie die zweite Version, wenn Ihre Anwendung private Escapewerte definiert. Weitere Informationen zur zweiten Version finden Sie ExtEscape im Windows SDK.

CDC::ExcludeClipRect

Erstellt einen neuen Beschneidungsbereich, der aus dem vorhandenen Clippingbereich abzüglich des angegebenen Rechtecks besteht.

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

int ExcludeClipRect(LPCRECT lpRect);

Parameter

x1
Gibt die logische x-Koordinate der oberen linken Ecke des Rechtecks an.

y1
Gibt die logische y-Koordinate der oberen linken Ecke des Rechtecks an.

x2
Gibt die logische x-Koordinate der unteren rechten Ecke des Rechtecks an.

y2
Gibt die logische y-Koordinate der unteren rechten Ecke des Rechtecks an.

lpRect
Gibt das Rechteck an. Kann auch ein CRect Objekt sein.

Rückgabewert

Gibt den Typ des neuen Clippingbereichs an. Dabei kann es sich um einen der folgenden Werte handeln:

  • COMPLEXREGION Der Bereich hat überlappende Rahmen.

  • ERROR Es wurde keine Region erstellt.

  • NULLREGION Die Region ist leer.

  • SIMPLEREGION Der Bereich hat keine überlappenden Rahmen.

Hinweise

Die Breite des Rechtecks, angegeben durch den absoluten Wert von x2 - x1, darf 32.767 Einheiten nicht überschreiten. Dieser Grenzwert gilt auch für die Höhe des Rechtecks.

CDC::ExcludeUpdateRgn

Verhindert das Zeichnen innerhalb ungültiger Bereiche eines Fensters, indem ein aktualisierter Bereich im Fenster von dem dem CDC Objekt zugeordneten Clippingbereich ausgeschlossen wird.

int ExcludeUpdateRgn(CWnd* pWnd);

Parameter

pWnd
Verweist auf das Fensterobjekt, dessen Fenster aktualisiert wird.

Rückgabewert

Der Typ der ausgeschlossenen Region. Dabei kann es sich um einen der folgenden Werte handeln:

  • COMPLEXREGION Der Bereich hat überlappende Rahmen.

  • ERROR Es wurde keine Region erstellt.

  • NULLREGION Die Region ist leer.

  • SIMPLEREGION Der Bereich hat keine überlappenden Rahmen.

CDC::ExtFloodFill

Füllt einen Bereich der Anzeigeoberfläche mit dem aktuellen Pinsel aus.

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

Parameter

x
Gibt die logische x-Koordinate des Punkts an, an dem die Füllung beginnt.

y
Gibt die logische y-Koordinate des Punkts an, an dem die Füllung beginnt.

crColor
Gibt die Farbe der Begrenzung oder des zu füllenden Bereichs an. Die Auslegung crColor hängt vom Wert von nFillType.

nFillType
Gibt den Typ der zu durchführenden Flutfüllung an. Dabei muss es sich um einen der folgenden Werte handeln:

  • FLOODFILLBORDER Der Füllbereich wird durch die durch crColor. Diese Formatvorlage ist identisch mit der Füllung, die von FloodFill.

  • FLOODFILLSURFACE Der Füllbereich wird durch die durch crColor. Die Füllung wird in allen Richtungen nach außen fortgesetzt, solange die Farbe gefunden wird. Diese Formatvorlage eignet sich für das Ausfüllen von Bereichen mit mehrfarbigen Begrenzungen.

Rückgabewert

Nonzero, wenn die Funktion erfolgreich ist; andernfalls 0, wenn die Füllung nicht abgeschlossen werden konnte, wenn der angegebene Punkt die durch (falls FLOODFILLBORDER angeforderte) Begrenzungsfarbe angegeben crColor hat, wenn der angegebene Punkt nicht über die angegebene crColor Farbe verfügt (falls FLOODFILLSURFACE angefordert), oder wenn sich der Punkt außerhalb des Beschneidungsbereichs befindet.

Hinweise

Diese Memberfunktion bietet mehr Flexibilität als, da FloodFill Sie einen Fülltyp nFillTypeangeben können.

Wenn nFillType dieser Wert festgelegt FLOODFILLBORDERist, wird davon ausgegangen, dass der Bereich vollständig durch die durch crColordie angegebene Farbe begrenzt wird. Die Funktion beginnt an dem angegebenen Punkt x und y füllt alle Richtungen zur Farbgrenze aus.

Wenn diese Eigenschaft auf FLOODFILLSURFACEnFillType festgelegt ist, beginnt die Funktion an dem punkt, der durch x und y wird in alle Richtungen fortgesetzt, wobei alle angrenzenden Bereiche gefüllt werden, die die durch crColordie angegebene Farbe enthalten.

Nur Arbeitsspeichergerätekontexte und Geräte, die die Rasteranzeigetechnologie unterstützen ExtFloodFill. Weitere Informationen finden Sie in der GetDeviceCaps Memberfunktion.

CDC::ExtTextOut

Rufen Sie diese Memberfunktion auf, um eine Zeichenfolge in einem rechteckigen Bereich mithilfe der aktuell ausgewählten Schriftart zu schreiben.

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);

Parameter

x
Gibt die logische x-Koordinate der Zeichenzelle für das erste Zeichen in der angegebenen Zeichenfolge an.

y
Gibt die logische y-Koordinate des oberen Rands der Zeichenzelle für das erste Zeichen in der angegebenen Zeichenfolge an.

nOptions
Gibt den Rechtecktyp an. Dieser Parameter kann ein, beide oder keines der folgenden Werte sein:

  • ETO_CLIPPED Gibt an, dass Text auf das Rechteck zugeschnitten wird.

  • ETO_OPAQUE Gibt an, dass die aktuelle Hintergrundfarbe das Rechteck ausfüllt. (Sie können die aktuelle Hintergrundfarbe mit den SetBkColor Funktionen und Memberfunktionen festlegen und GetBkColor abfragen.)

lpRect
Verweist auf eine RECT Struktur, die die Dimensionen des Rechtecks bestimmt. Dieser Parameter kann NULL sein. Sie können auch ein CRect Objekt für diesen Parameter übergeben.

lpszString
Verweist auf die angegebene zeichenzeichenfolge, die gezeichnet werden soll. Sie können auch ein CString Objekt für diesen Parameter übergeben.

nCount
Gibt die Anzahl von Zeichen in der Zeichenfolge an.

lpDxWidths
Verweist auf ein Array von Werten, die den Abstand zwischen den Ursprüngen benachbarter Zeichenzellen angeben. [] logische Einheiten trennen z. BlpDxWidthsi. die Ursprünge der Zeichenzelle i und der Zeichenzelle i +1. Wenn lpDxWidths ja NULL, ExtTextOut wird der Standardabstand zwischen Zeichen verwendet.

str
Ein CString Objekt, das die angegebenen Zeichen enthält, die gezeichnet werden sollen.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Der rechteckige Bereich kann undurchsichtig (mit der aktuellen Hintergrundfarbe gefüllt) sein und ein Beschneidungsbereich sein.

Wenn nOptions 0 ist und lpRect ist NULL, schreibt die Funktion Text in den Gerätekontext, ohne einen rechteckigen Bereich zu verwenden. Standardmäßig wird die aktuelle Position von der Funktion nicht verwendet oder aktualisiert. Wenn eine Anwendung beim Aufrufen ExtTextOutdie aktuelle Position aktualisieren muss, kann die Anwendung die CDC Memberfunktion SetTextAlign mit nFlags "Set" TA_UPDATECPaufrufen. Wenn dieses Kennzeichen festgelegt ist, ignoriert x Windows und y verwendet stattdessen die ExtTextOut aktuelle Position. Wenn eine Anwendung zum Aktualisieren der aktuellen Position verwendet TA_UPDATECP wird, ExtTextOut wird die aktuelle Position entweder auf das Ende der vorherigen Textzeile oder auf die Position festgelegt, die durch das letzte Element des Arrays angegeben wird, auf das verwiesen wird, je lpDxWidthsnachdem, welcher Wert größer ist.

CDC::FillPath

Schließt alle geöffneten Figuren im aktuellen Pfad und füllt das Innere des Pfads mithilfe des aktuellen Pinsel- und Polygonfüllmodus aus.

BOOL FillPath();

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Nachdem das Innere gefüllt wurde, wird der Pfad vom Gerätekontext getrennt Karte.

CDC::FillRect

Rufen Sie diese Memberfunktion auf, um ein bestimmtes Rechteck mit dem angegebenen Pinsel auszufüllen.

void FillRect(
    LPCRECT lpRect,
    CBrush* pBrush);

Parameter

lpRect
Verweist auf eine RECT Struktur, die die logischen Koordinaten des zu füllenden Rechtecks enthält. Sie können auch ein CRect Objekt für diesen Parameter übergeben.

pBrush
Gibt den Pinsel an, der zum Ausfüllen des Rechtecks verwendet wird.

Hinweise

Die Funktion füllt das vollständige Rechteck, einschließlich der linken und oberen Rahmenlinien, füllt jedoch nicht die rechten und unteren Rahmen.

Der Pinsel muss entweder mithilfe der CBrush Memberfunktionen CreateHatchBrush, CreatePatternBrushund , und CreateSolidBrush, oder von der GetStockObject Windows-Funktion abgerufen werden.

Beim Ausfüllen des angegebenen Rechtecks enthält das Rechteck nicht die rechte und untere Seite des Rechtecks FillRect . GDI füllt ein Rechteck bis zu, enthält aber nicht die rechte Spalte und untere Zeile, unabhängig vom aktuellen Zuordnungsmodus. FillRectVergleicht die Werte des topangegebenen Rechtecks , bottomleft, und right member des angegebenen Rechtecks. Wenn bottom kleiner oder gleich topoder right kleiner als oder gleich leftist, wird das Rechteck nicht gezeichnet.

FillRect ähnelt CDC::FillSolidRect; verwendet jedoch einen Pinsel und kann daher verwendet werden, FillRect um ein Rechteck mit einer Volltonfarbe, einer gefächerten Farbe, geschlüpften Pinsel oder einem Muster zu füllen. FillSolidRect verwendet nur Volltonfarben (angegeben durch einen COLORREF Parameter). FillRect ist in der Regel langsamer als FillSolidRect.

CDC::FillRgn

Füllt den durch pRgn den durch den Pinsel angegebenen pBrushBereich aus.

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

Parameter

pRgn
Ein Zeiger auf den zu füllenden Bereich. Die Koordinaten für den angegebenen Bereich werden in logischen Einheiten angegeben.

pBrush
Gibt den Pinsel an, der zum Ausfüllen des Bereichs verwendet werden soll.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Der Pinsel muss entweder mithilfe der CBrush Memberfunktionen CreateHatchBrush, CreatePatternBrush, , CreateSolidBrushoder von GetStockObject.

Beispiel

Sehen Sie sich das Beispiel für CRgn::CreateRoundRectRgn.

CDC::FillSolidRect

Rufen Sie diese Memberfunktion auf, um das angegebene Rechteck mit der angegebenen Volltonfarbe auszufüllen.

void FillSolidRect(
    LPCRECT lpRect,
    COLORREF clr);

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

Parameter

lpRect
Gibt das umgebende Rechteck (in logischen Einheiten) an. Sie können einen Zeiger entweder an eine RECT Datenstruktur oder ein CRect Objekt für diesen Parameter übergeben.

clr Gibt die Farbe an, die zum Ausfüllen des Rechtecks verwendet werden soll.

x
Gibt die logische x-Koordinate der oberen linken Ecke des Rechtecks an.

y
Gibt die logische y-Koordinate der oberen linken Ecke des Zielrechtecks an.

cx
Gibt die Breite des Rechtecks an.

cy
Gibt die Höhe des Rechtecks an.

Hinweise

FillSolidRect ist sehr ähnlich wie CDC::FillRect; verwendet jedoch FillSolidRect nur Volltonfarben (angegeben durch den COLORREF Parameter), während FillRect ein Pinsel verwendet wird und daher verwendet werden kann, um ein Rechteck mit einer Volltonfarbe, einer gefächerten Farbe, geschlüpften Pinsel oder einem Muster zu füllen. FillSolidRect ist in der Regel schneller als FillRect.

Hinweis

Beim Aufrufen FillSolidRectwird die Hintergrundfarbe, die zuvor mit SetBkColorder Verwendung festgelegt wurde, auf die farbe festgelegt, die durch clr.

CDC::FlattenPath

Wandelt alle Kurven im ausgewählten Pfad in den aktuellen Gerätekontext um und wandelt jede Kurve in eine Folge von Linien um.

BOOL FlattenPath();

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

CDC::FloodFill

Füllt einen Bereich der Anzeigeoberfläche mit dem aktuellen Pinsel aus.

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

Parameter

x
Gibt die logische x-Koordinate des Punkts an, an dem die Füllung beginnt.

y
Gibt die logische y-Koordinate des Punkts an, an dem die Füllung beginnt.

crColor
Gibt die Farbe der Grenze an.

Rückgabewert

Nonzero, wenn die Funktion erfolgreich ist; andernfalls wird "0" zurückgegeben, wenn die Füllung nicht abgeschlossen werden konnte, der angegebene Punkt die Durchbruchfarbe crColoraufweist, oder der Punkt liegt außerhalb des Beschneidungsbereichs.

Hinweise

Es wird davon ausgegangen, dass der Bereich wie angegeben crColorbegrenzt wird. Die FloodFill Funktion beginnt an dem angegebenen x Punkt und y wird in allen Richtungen zur Farbgrenze fortgesetzt.

Nur Speichergerätekontexte und Geräte, die die Rasteranzeigetechnologie unterstützen, unterstützen die FloodFill Memberfunktion. Informationen zur RC_BITBLT Funktion finden Sie in der GetDeviceCaps Memberfunktion.

Die ExtFloodFill Funktion bietet ähnliche Funktionen, aber größere Flexibilität.

CDC::FrameRect

Zeichnet einen Rahmen um das durch lpRect.

void FrameRect(
    LPCRECT lpRect,
    CBrush* pBrush);

Parameter

lpRect
Verweist auf eine Struktur oder CRect ein RECT Objekt, die die logischen Koordinaten der oberen linken und unteren rechten Ecken des Rechtecks enthält. Sie können auch ein CRect Objekt für diesen Parameter übergeben.

pBrush
Gibt den Pinsel an, der zum Umrahmen des Rechtecks verwendet werden soll.

Hinweise

Die Funktion verwendet den angegebenen Pinsel, um den Rahmen zu zeichnen. Die Breite und Höhe des Rahmens ist immer eine logische Einheit.

Wenn die Koordinate des Rechtecks bottom kleiner oder gleich topist oder right kleiner als oder gleich leftist, wird das Rechteck nicht gezeichnet.

Der rahmen FrameRect , von dem gezeichnet wird, befindet sich an derselben Position wie ein Rahmen, der von der Rectangle Memberfunktion mit denselben Koordinaten gezeichnet wird (wenn Rectangle ein Stift verwendet wird, der 1 logische Einheit breit ist). Das Innere des Rechtecks wird nicht ausgefüllt.FrameRect

CDC::FrameRgn

Zeichnet einen Rahmen um den durch den angegebenen pBrushPinsel angegebenen pRgn Bereich.

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

Parameter

pRgn
Verweist auf das CRgn Objekt, das den Bereich identifiziert, der in einen Rahmen eingeschlossen werden soll. Die Koordinaten für den angegebenen Bereich werden in logischen Einheiten angegeben.

pBrush
Verweist auf das CBrush Objekt, das den Pinsel identifiziert, der zum Zeichnen des Rahmens verwendet werden soll.

nWidth
Gibt die Breite des Rahmens in vertikalen Pinselstrichen in Geräteeinheiten an.

nHeight
Gibt die Höhe des Rahmens in horizontalen Pinselstrichen in Geräteeinheiten an.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Beispiel

Sehen Sie sich das Beispiel für CRgn::CombineRgn.

CDC::FromHandle

Gibt einen Zeiger auf ein CDC Objekt zurück, wenn ein Handle auf einen Gerätekontext übergeben wird.

static CDC* PASCAL FromHandle(HDC hDC);

Parameter

hDC
Enthält ein Handle für einen Windows-Gerätekontext.

Rückgabewert

Der Zeiger kann temporär sein und sollte nicht über die sofortige Verwendung hinaus gespeichert werden.

Hinweise

Wenn ein CDC Objekt nicht an das Handle angefügt ist, wird ein temporäres CDC Objekt erstellt und angefügt.

Beispiel

Sehen Sie sich das Beispiel für CPrintDialog::GetPrinterDC.

CDC::GetArcDirection

Gibt die aktuelle Bogenrichtung für den Gerätekontext zurück.

int GetArcDirection() const;

Rückgabewert

Gibt die aktuelle Bogenrichtung an, wenn dies erfolgreich ist. Es folgen die gültigen Rückgabewerte:

  • AD_COUNTERCLOCKWISE Bögen und Rechtecke, die gegen den Uhrzeigersinn gezeichnet wurden.

  • AD_CLOCKWISE Arcs und Rechtecke, die im Uhrzeigersinn gezeichnet wurden.

Wenn ein Fehler auftritt, ist der Rückgabewert null.

Hinweise

Bogen- und Rechteckfunktionen verwenden die Bogenrichtung.

CDC::GetAspectRatioFilter

Ruft die Einstellung für den aktuellen Seitenverhältnisfilter ab.

CSize GetAspectRatioFilter() const;

Rückgabewert

Ein CSize Objekt, das das seitenverhältnis darstellt, das vom aktuellen Seitenverhältnisfilter verwendet wird.

Hinweise

Das Seitenverhältnis ist das Verhältnis, das durch die Pixelbreite und Höhe eines Geräts gebildet wird. Informationen zum Seitenverhältnis eines Geräts werden bei der Erstellung, Auswahl und Anzeige von Schriftarten verwendet. Windows bietet einen speziellen Filter, den Seitenverhältnisfilter, um Schriftarten auszuwählen, die für ein bestimmtes Seitenverhältnis aus allen verfügbaren Schriftarten entwickelt wurden. Der Filter verwendet das von der SetMapperFlags Memberfunktion angegebene Seitenverhältnis.

CDC::GetBkColor

Gibt die aktuelle Hintergrundfarbe zurück.

COLORREF GetBkColor() const;

Rückgabewert

Ein RGB-Farbwert.

Hinweise

Wenn der Hintergrundmodus lautet OPAQUE, verwendet das System die Hintergrundfarbe, um die Lücken in formatierten Linien zu füllen, die Lücken zwischen geschlüpften Linien in Pinsel und hintergrund in Zeichenzellen. Das System verwendet auch die Hintergrundfarbe beim Konvertieren von Bitmaps zwischen Farb- und Monochromgerätekontexten.

CDC::GetBkMode

Gibt den Hintergrundmodus zurück.

int GetBkMode() const;

Rückgabewert

Der aktuelle Hintergrundmodus, der sein OPAQUE kann oder TRANSPARENT.

Hinweise

Der Hintergrundmodus definiert, ob das System vorhandene Hintergrundfarben auf der Zeichnungsoberfläche entfernt, bevor Text, geschlüpfte Pinsel oder ein Beliebiger Stiftstil, der keine durchgezogene Linie ist, gezeichnet wird.

CDC::GetBoundsRect

Gibt das aktuelle angesammelte Begrenzungsrechteck für den angegebenen Gerätekontext zurück.

UINT GetBoundsRect(
    LPRECT lpRectBounds,
    UINT flags);

Parameter

lpRectBounds
Verweist auf einen Puffer, der das aktuelle umgebende Rechteck empfängt. Das Rechteck wird in logischen Koordinaten zurückgegeben.

flags
Gibt an, ob das umgebende Rechteck nach der Rückgabe gelöscht werden soll. Dieser Parameter sollte null sein oder auf den folgenden Wert festgelegt werden:

  • DCB_RESET Erzwingt, dass das umgebende Rechteck gelöscht wird, nachdem es zurückgegeben wurde.

Rückgabewert

Gibt den aktuellen Zustand des umgebenden Rechtecks an, wenn die Funktion erfolgreich ist. Dabei kann es sich um eine Kombination der folgenden Werte handeln:

  • DCB_ACCUMULATE Die Begrenzung der Rechteckakkumulation erfolgt.

  • DCB_RESET Das umgebende Rechteck ist leer.

  • DCB_SET Das umgebende Rechteck ist nicht leer.

  • DCB_ENABLE Die begrenzungsgebundene Anhäufung ist aktiviert.

  • DCB_DISABLE Begrenzungsakkumulation ist deaktiviert.

CDC::GetBrushOrg

Ruft den Ursprung (in Geräteeinheiten) des derzeit für den Gerätekontext ausgewählten Pinsels ab.

CPoint GetBrushOrg() const;

Rückgabewert

Der aktuelle Ursprung des Pinsels (in Geräteeinheiten) als CPoint Objekt.

Hinweise

Der ursprüngliche Pinselursprung liegt bei (0,0) des Clientbereichs. Der Rückgabewert gibt diesen Punkt in Geräteeinheiten relativ zum Ursprung des Desktopfensters an.

CDC::GetCharacterPlacement

Ruft verschiedene Typen von Informationen zu einer Zeichenfolge ab.

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;

Parameter

lpString
Ein Zeiger auf die zu verarbeitende Zeichenfolge.

nCount
Gibt die Länge der Zeichenfolge an. Für die ANSI-Version handelt es sich um eine BYTE Anzahl und für die Unicode-Funktion ist es eine WORD Anzahl. Weitere Informationen finden Sie unter GetCharacterPlacement.

nMaxExtent
Gibt der maximale Wertbereich (in logischen Einheiten) an, zu dem die Zeichenfolge verarbeitet wird. Zeichen, die diesen Wertbereich bei Verarbeitung überschreiten würden, werden ignoriert. Berechnungen für alle erforderlichen Reihenfolge- oder Glyphenarrays gelten nur für die enthaltenen Zeichen. Dieser Parameter wird nur verwendet, wenn der GCP_MAXEXTENT Wert im dwFlags Parameter angegeben wird. Da die Funktion die Eingabezeichenfolge verarbeitet, wird jedes Zeichen und sein Wertebereich nur dann der Ausgabe, dem Wertebereich und anderen Arrays hinzugefügt, wenn der gesamte Wertebereich das Maximum noch nicht überschritten hat. Bei Erreichen des Limits wird die Verarbeitung beendet.

lpResults
Zeiger auf eine GCP_Results Struktur, die die Ergebnisse der Funktion empfängt.

dwFlags
Gibt das Verarbeiten der Zeichenfolge in die erforderlichen Arrays an. Dieser Parameter kann mindestens einer der werte sein, die dwFlags im Abschnitt des GetCharacterPlacement Themas aufgeführt sind.

str
Ein Zeiger auf ein CString zu verarbeitende Objekt.

Rückgabewert

Wenn die Funktion erfolgreich ist, handelt es sich bei dem Rückgabewert um die Breite und Höhe der Zeichenfolge in logischen Einheiten.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null.

Hinweise

Diese Memberfunktion emuliert die Funktionalität der Funktion GetCharacterPlacement, wie im Windows SDK beschrieben.

CDC::GetCharABCWidths

Ruft die Breite aufeinander folgender Zeichen in einem angegebenen Bereich aus der aktuellen TrueType-Schriftart ab.

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

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

Parameter

nFirstChar
Gibt das erste Zeichen im Zeichenbereich der aktuellen Schriftart an, für die Zeichenbreiten zurückgegeben werden.

nLastChar
Gibt das letzte Zeichen im Zeichenbereich der aktuellen Schriftart an, für die Zeichenbreiten zurückgegeben werden.

lpabc
Verweist auf ein Array von ABC Strukturen, die die Zeichenbreite erhalten, wenn die Funktion zurückgegeben wird. Dieses Array muss mindestens so viele ABC Strukturen enthalten, wie es Zeichen im bereich gibt, der durch die nFirstChar Parameter nLastChar angegeben ist.

lpABCF
Verweist auf einen vom Anwendung bereitgestellten Puffer mit einem Array von ABCFLOAT Strukturen, um die Zeichenbreiten zu empfangen, wenn die Funktion zurückgegeben wird. Die von dieser Funktion zurückgegebenen Breiten befinden sich im IEEE-Gleitkommaformat.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Die Breite wird in logischen Einheiten zurückgegeben. Diese Funktion ist nur mit TrueType-Schriftarten erfolgreich.

Der TrueType-Rasterizer stellt den Zeichenabstand "ABC" bereit, nachdem eine bestimmte Punktgröße ausgewählt wurde. Der Abstand "A" ist der Abstand, der der aktuellen Position hinzugefügt wird, bevor die Glyphe platziert wird. Der Abstand "B" ist die Breite des schwarzen Teils der Glyphe. Der Abstand "C" wird der aktuellen Position hinzugefügt, um den Leerraum rechts neben der Glyphe zu berücksichtigen. Die gesamt erweiterte Breite wird durch A + B + C angegeben.

Wenn die GetCharABCWidths Memberfunktion negative "A"- oder "C"-Breite für ein Zeichen abruft, enthält dieses Zeichen Unterhänge oder Überhänge.

Um die ABC-Breite in Schriftartenentwurfseinheiten zu konvertieren, sollte eine Anwendung eine Schriftart erstellen, deren Höhe (wie im lfHeight Element der LOGFONT Struktur angegeben) dem Wert entspricht, der ntmSizeEM im Element der NEWTEXTMETRIC Struktur gespeichert ist. (Der Wert des ntmSizeEM Elements kann durch Aufrufen der EnumFontFamilies Windows-Funktion abgerufen werden.)

Die ABC-Breite des Standardzeichens wird für Zeichen verwendet, die sich außerhalb des Bereichs der aktuell ausgewählten Schriftart befinden.

Um die Zeichenbreiten in Nicht-TrueType-Schriftarten abzurufen, sollten Anwendungen die GetCharWidth Windows-Funktion verwenden.

CDC::GetCharABCWidthsI

Ruft die Breite in logischen Einheiten von aufeinander folgenden Glyphenindizes in einem angegebenen Bereich aus der aktuellen TrueType-Schriftart ab.

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

Parameter

giFirst
Gibt den ersten Glyphenindex in der Gruppe aufeinander folgender Glyphenindizes aus der aktuellen Schriftart an. Dieser Parameter wird nur verwendet, wenn der pgi Parameter ist NULL.

cgi
Gibt die Anzahl der Glyphenindizes an.

pgi
Ein Zeiger auf ein Array, das Glyphenindizes enthält. Wenn der Wert lautet NULL, wird stattdessen der giFirst Parameter verwendet. Der cgi Parameter gibt die Anzahl der Glyphenindizes in diesem Array an.

lpabc
Zeigen Sie auf ein Array von ABC Strukturen, die die Zeichenbreiten empfangen. Dieses Array muss mindestens so viele ABC Strukturen enthalten, wie es Glyphenindizes gibt, die cgi vom Parameter angegeben werden.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Diese Memberfunktion emuliert die Funktionalität der Funktion GetCharABCWidthsI, wie im Windows SDK beschrieben.

CDC::GetCharWidth

Ruft die Breite einzelner Zeichen in einer aufeinander folgenden Gruppe von Zeichen aus der aktuellen Schriftart mithilfe m_hAttribDCdes Eingabegerätekontexts ab.

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

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

Parameter

nFirstChar
Gibt das erste Zeichen in einer aufeinander folgenden Gruppe von Zeichen in der aktuellen Schriftart an.

nLastChar
Gibt das letzte Zeichen in einer aufeinander folgenden Gruppe von Zeichen in der aktuellen Schriftart an.

lpBuffer
Verweist auf einen Puffer, der die Breitenwerte für eine aufeinander folgende Gruppe von Zeichen in der aktuellen Schriftart empfängt.

lpFloatBuffer
Verweist auf einen Puffer, der die Zeichenbreiten empfängt. Die zurückgegebenen Breiten befinden sich im 32-Bit-IEEE-Gleitkommaformat. (Die Breite wird entlang der Basislinie der Zeichen gemessen.)

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Wenn beispielsweise nFirstChar der Buchstabe "a" identifiziert und nLastChar der Buchstabe "z" identifiziert wird, ruft die Funktion die Breite aller Kleinbuchstaben ab.

Die Funktion speichert die Werte im Puffer, auf die verwiesen wird.lpBuffer Dieser Puffer muss groß genug sein, um alle Breiten zu enthalten. Das heißt, es müssen mindestens 26 Einträge im angegebenen Beispiel vorhanden sein.

Wenn ein Zeichen in der aufeinander folgenden Zeichengruppe nicht in einer bestimmten Schriftart vorhanden ist, wird ihm der Breiteswert des Standardzeichens zugewiesen.

CDC::GetCharWidthI

Ruft die Breite in logischen Koordinaten von aufeinander folgenden Glyphenindizes in einem angegebenen Bereich von der aktuellen Schriftart ab.

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

Parameter

giFirst
Gibt den ersten Glyphenindex in der Gruppe aufeinander folgender Glyphenindizes aus der aktuellen Schriftart an. Dieser Parameter wird nur verwendet, wenn der pgi Parameter ist NULL.

cgi
Gibt die Anzahl der Glyphenindizes an.

pgi
Ein Zeiger auf ein Array, das Glyphenindizes enthält. Wenn der Wert lautet NULL, wird stattdessen der giFirst Parameter verwendet. Der cgi Parameter gibt die Anzahl der Glyphenindizes in diesem Array an.

lpBuffer
Ein Zeiger auf einen Puffer, der die Breite empfängt.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Diese Memberfunktion emuliert die Funktionalität der Funktion GetCharWidthI, wie im Windows SDK beschrieben.

CDC::GetClipBox

Ruft die Abmessungen des strengsten Begrenzungsrechtecks um die aktuelle Beschneidungsgrenze ab.

virtual int GetClipBox(LPRECT lpRect) const;

Parameter

lpRect
Verweist auf die Struktur oder CRect das RECT Objekt, die die Abmessungen des Rechtecks empfangen soll.

Rückgabewert

Der Typ des Clippingbereichs. Dabei kann es sich um einen der folgenden Werte handeln:

  • COMPLEXREGION Der Beschneidungsbereich hat überlappende Rahmen.

  • ERROR Der Gerätekontext ist ungültig.

  • NULLREGION Der Beschneidungsbereich ist leer.

  • SIMPLEREGION Der Beschneidungsbereich weist keine überlappenden Rahmen auf.

Hinweise

Die Dimensionen werden in den Puffer kopiert, auf den lpRectverwiesen wird.

CDC::GetColorAdjustment

Ruft die Farbanpassungswerte für den Gerätekontext ab.

BOOL GetColorAdjustment(LPCOLORADJUSTMENT lpColorAdjust) const;

Parameter

lpColorAdjust
Verweist auf eine COLORADJUSTMENT Datenstruktur, um die Farbanpassungswerte zu erhalten.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

CDC::GetCurrentBitmap

Gibt einen Zeiger auf das aktuell ausgewählte CBitmap Objekt zurück.

CBitmap* GetCurrentBitmap() const;

Rückgabewert

Zeigen Sie bei erfolgreicher Ausführung auf ein CBitmap Objekt. Andernfalls NULL.

Hinweise

Diese Memberfunktion kann temporäre Objekte zurückgeben.

CDC::GetCurrentBrush

Gibt einen Zeiger auf das aktuell ausgewählte CBrush Objekt zurück.

CBrush* GetCurrentBrush() const;

Rückgabewert

Zeigen Sie bei erfolgreicher Ausführung auf ein CBrush Objekt. Andernfalls NULL.

Hinweise

Diese Memberfunktion kann temporäre Objekte zurückgeben.

CDC::GetCurrentFont

Gibt einen Zeiger auf das aktuell ausgewählte CFont Objekt zurück.

CFont* GetCurrentFont() const;

Rückgabewert

Zeigen Sie bei erfolgreicher Ausführung auf ein CFont Objekt. Andernfalls NULL.

Hinweise

Diese Memberfunktion kann temporäre Objekte zurückgeben.

CDC::GetCurrentPalette

Gibt einen Zeiger auf das aktuell ausgewählte CPalette Objekt zurück.

CPalette* GetCurrentPalette() const;

Rückgabewert

Zeigen Sie bei erfolgreicher Ausführung auf ein CPalette Objekt. Andernfalls NULL.

Hinweise

Diese Memberfunktion kann temporäre Objekte zurückgeben.

CDC::GetCurrentPen

Gibt einen Zeiger auf das aktuell ausgewählte CPen Objekt zurück.

CPen* GetCurrentPen() const;

Rückgabewert

Zeigen Sie bei erfolgreicher Ausführung auf ein CPen Objekt. Andernfalls NULL.

Hinweise

Diese Memberfunktion kann temporäre Objekte zurückgeben.

CDC::GetCurrentPosition

Ruft die aktuelle Position (in logischen Koordinaten) ab.

CPoint GetCurrentPosition() const;

Rückgabewert

Die aktuelle Position als CPoint Objekt.

Hinweise

Die aktuelle Position kann mit der MoveTo Memberfunktion festgelegt werden.

CDC::GetDCBrushColor

Ruft die aktuelle Pinselfarbe ab.

COLORREF GetDCBrushColor() const;

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert der COLORREF Wert für die aktuelle Pinselfarbe.

Wenn die Funktion fehlschlägt, lautet CLR_INVALIDder Rückgabewert .

Hinweise

Diese Memberfunktion emuliert die Funktionalität der Funktion GetDCBrushColor, wie im Windows SDK beschrieben.

CDC::GetDCPenColor

Ruft die aktuelle Stiftfarbe ab.

COLORREF GetDCPenColor() const;

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert der COLORREF Wert für die aktuelle Stiftfarbe.

Wenn die Funktion fehlschlägt, lautet CLR_INVALIDder Rückgabewert .

Hinweise

Diese Memberfunktion verwendet die Win32-Funktion GetDCPenColor, wie im Windows SDK beschrieben.

CDC::GetDeviceCaps

Ruft eine breite Palette von gerätespezifischen Informationen zum Anzeigegerät ab.

int GetDeviceCaps(int nIndex) const;

Parameter

nIndex
Gibt die Art der zurückzugebenden Informationen an. Eine Liste der Werte finden Sie GetDeviceCaps im Windows SDK.

Rückgabewert

Der Wert der angeforderten Funktion, wenn die Funktion erfolgreich ist.

Beispiel

Sehen Sie sich das Beispiel für CPrintDialog::GetDefaults.

CDC::GetFontData

Ruft Schriftmetrikinformationen aus einer skalierbaren Schriftartdatei ab.

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

Parameter

dwTable
Gibt den Namen der zurückgegebenen Metriktabelle an. Dieser Parameter kann eine der Metriktabellen sein, die in der von der Microsoft Corporation veröffentlichten Spezifikation trueType Font Files dokumentiert sind. Wenn dieser Parameter 0 ist, werden die Informationen ab dem Anfang der Schriftartdatei abgerufen.

dwOffset
Gibt den Offset vom Anfang der Tabelle an, an dem mit dem Abrufen von Informationen begonnen werden soll. Wenn dieser Parameter 0 ist, werden die Informationen beginnend am Anfang der durch den dwTable Parameter angegebenen Tabelle abgerufen. Wenn dieser Wert größer oder gleich der Größe der Tabelle ist, GetFontData wird 0 zurückgegeben.

lpData
Verweist auf einen Puffer, der die Schriftartinformationen empfängt. Wenn dieser Wert lautet, gibt die Funktion die Größe des Puffers zurück, der für die im dwTable Parameter angegebenen Schriftartdaten erforderlich istNULL.

cbData
Gibt die Länge der abzurufenden Informationen in Bytes an. Wenn dieser Parameter 0 ist, GetFontData wird die Größe der im dwTable Parameter angegebenen Daten zurückgegeben.

Rückgabewert

Gibt die Anzahl der im Puffer zurückgegebenen Bytes an, auf lpData die verwiesen wird, wenn die Funktion erfolgreich ist; andernfalls -1.

Hinweise

Die abzurufenden Informationen werden durch Angabe eines Offsets in der Schriftartdatei und der Länge der zurückzugebenden Informationen identifiziert.

Eine Anwendung kann manchmal die GetFontData Memberfunktion verwenden, um eine TrueType-Schriftart mit einem Dokument zu speichern. Dazu bestimmt die Anwendung, ob die Schriftart eingebettet werden kann, und ruft dann die gesamte Schriftartdatei ab, wobei 0 für die Parameter , dwOffsetund cbData die dwTableParameter angegeben wird.

Anwendungen können bestimmen, ob eine Schriftart eingebettet werden kann, indem sie das otmfsType Element der OUTLINETEXTMETRIC Struktur überprüfen. Wenn Bit 1 von otmfsType festgelegt ist, ist das Einbetten für die Schriftart nicht zulässig. Wenn Bit 1 klar ist, kann die Schriftart eingebettet werden. Wenn Bit 2 festgelegt ist, ist die Einbettung schreibgeschützt.

Wenn eine Anwendung versucht, diese Funktion zum Abrufen von Informationen für eine Nicht-TrueType-Schriftart zu verwenden, gibt die GetFontData Memberfunktion -1 zurück.

CDC::GetFontLanguageInfo

Gibt Informationen zur aktuell ausgewählten Schriftart für den angegebenen Anzeigekontext zurück.

DWORD GetFontLanguageInfo() const;

Rückgabewert

Der Rückgabewert identifiziert Die Merkmale der aktuell ausgewählten Schriftart. Eine vollständige Auflistung möglicher Werte finden Sie unter GetFontLanguageInfo.

Hinweise

Diese Memberfunktion emuliert die Funktionalität der Funktion GetFontLanguageInfo, wie im Windows SDK beschrieben.

CDC::GetGlyphOutline

Ruft die Gliederungskurve oder Bitmap für ein Gliederungszeichen in der aktuellen Schriftart ab.

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

Parameter

nChar
Gibt das Zeichen an, für das Informationen zurückgegeben werden sollen.

nFormat
Gibt das Format an, in dem die Funktion Informationen zurückgibt. Dabei kann es sich um einen der folgenden Werte oder um 0 handeln:

Wert Bedeutung
GGO_BITMAP Gibt die Glyphenbitmap zurück. Wenn die Funktion zurückgegeben wird, enthält der Puffer, auf lpBuffer den verwiesen wird, eine 1-Bit-pro-Pixel-Bitmap, deren Zeilen mit Doubleword-Begrenzungen beginnen.
GGO_NATIVE Gibt die Kurvendatenpunkte im systemeigenen Format des Rasterizers mithilfe von Geräteeinheiten zurück. Wenn dieser Wert angegeben wird, wird jede angegebene lpmat2 Transformation ignoriert.

Wenn der Wert nFormat 0 ist, füllt die Funktion eine Struktur aus GLYPHMETRICS , gibt jedoch keine Glyphenkonturdaten zurück.

lpgm
Verweist auf eine GLYPHMETRICS Struktur, die die Platzierung der Glyphe in der Zeichenzelle beschreibt.

cbBuffer
Gibt die Größe des Puffers an, in den die Funktion Informationen zum Gliederungszeichen kopiert. Wenn dieser Wert 0 ist und der nFormat Parameter entweder die GGO_BITMAP Werte ist GGO_NATIVE , gibt die Funktion die erforderliche Größe des Puffers zurück.

lpBuffer
Verweist auf einen Puffer, in den die Funktion Informationen zum Gliederungszeichen kopiert. Wenn nFormat der GGO_NATIVE Wert angegeben wird, werden die Informationen in Form TTPOLYGONHEADER und TTPOLYCURVE Strukturen kopiert. Wenn dieser Wert entweder der Wert GGO_NATIVE oder der GGO_BITMAP Wert ist NULLnFormat, gibt die Funktion die erforderliche Größe des Puffers zurück.

lpmat2
Verweist auf eine MAT2 Struktur, die eine Transformationsmatrix für das Zeichen enthält. Dieser Parameter kann nicht sein NULL, auch wenn der GGO_NATIVE Wert für nFormat.

Rückgabewert

Die Größe des für die abgerufenen Informationen erforderlichen Puffers in Bytes, wenn cbBuffer 0 oder lpBuffer 0 ist NULL. Andernfalls ist es ein positiver Wert, wenn die Funktion erfolgreich ist, oder -1, wenn ein Fehler auftritt.

Hinweise

Eine Anwendung kann Zeichen drehen, die im Bitmapformat abgerufen werden, indem sie eine 2:2-Transformationsmatrix in der Struktur angeben, auf lpmat2die verwiesen wird.

Eine Glyphenkontur wird als Eine Reihe von Konturen zurückgegeben. Jede Kontur wird durch eine TTPOLYGONHEADER Struktur definiert, gefolgt von so vielen TTPOLYCURVE Strukturen, wie sie beschrieben werden müssen. Alle Punkte werden als POINTFX Strukturen zurückgegeben und stellen absolute Positionen dar, keine relativen Verschiebungen. Der Anfangspunkt des pfxStart Elements der TTPOLYGONHEADER Struktur ist der Punkt, an dem die Kontur für eine Kontur beginnt. Die TTPOLYCURVE folgenden Strukturen können entweder Polyline-Datensätze oder Splinedatensätze sein. Polylinien-Datensätze sind eine Reihe von Punkten; Zwischen den Punkten gezeichnete Linien beschreiben die Gliederung des Zeichens. Spline-Datensätze stellen die quadratischen Kurven dar, die von TrueType verwendet werden (d. r. quadratische b-splines).

CDC::GetGraphicsMode

Ruft den aktuellen Grafikmodus für den angegebenen Gerätekontext ab.

int GetGraphicsMode() const;

Rückgabewert

Gibt den aktuellen Grafikmodus bei Erfolg zurück. Eine Liste der Werte, die diese Methode zurückgeben kann, finden Sie unter GetGraphicsMode.

Gibt 0 für Fehler zurück.

Um erweiterte Fehlerinformationen abzurufen, rufen Sie GetLastError auf.

Hinweise

Diese Methode umschließt die Windows GDI-Funktion GetGraphicsMode.

CDC::GetHalftoneBrush

Rufen Sie diese Memberfunktion auf, um einen Halbtonpinsel abzurufen.

static CBrush* PASCAL GetHalftoneBrush();

Rückgabewert

Ein Zeiger auf ein CBrush Objekt bei erfolgreicher Ausführung; andernfalls NULL.

Hinweise

Ein Halbtonpinsel zeigt Pixel an, die abwechselnd Vordergrund- und Hintergrundfarben sind, um ein ditheriertes Muster zu erstellen. Das folgende Diagramm zeigt ein Beispiel für ein ditheriertes Muster, das von einem Halbtonpinsel erstellt wurde:

Diagram that shows how a dithered pen stroke is composed.

Das Diagramm zeigt, wie die Hintergrundfarbe von Schwarz und die Vordergrundfarbe gelb in ein Muster kombiniert werden, indem die schwarzen und gelben Pixel miteinander abwechselnd werden, um einen Strich mit einem gestrichelten Stift zu erstellen.

CDC::GetKerningPairs

Ruft die Zeichenkerningpaare für die Schriftart ab, die derzeit im angegebenen Gerätekontext ausgewählt ist.

int GetKerningPairs(
    int nPairs,
    LPKERNINGPAIR lpkrnpair) const;

Parameter

nPairs
Gibt die Anzahl der KERNINGPAIR Strukturen an, auf die verwiesen wird lpkrnpair. Die Funktion kopiert nicht mehr Kerningpaare als angegeben.nPairs

lpkrnpair
Verweist auf ein Array von KERNINGPAIR Strukturen, die die Kerningpaare empfangen, wenn die Funktion zurückgegeben wird. Dieses Array muss mindestens so viele Strukturen wie angegeben nPairsenthalten. Wenn dieser Parameter lautet NULL, gibt die Funktion die Gesamtanzahl der Kerningpaare für die Schriftart zurück.

Rückgabewert

Gibt die Anzahl der abgerufenen Kerningpaare oder die Gesamtanzahl der Kerningpaare in der Schriftart an, wenn die Funktion erfolgreich ist. Null wird zurückgegeben, wenn die Funktion fehlschlägt oder keine Kerningpaare für die Schriftart vorhanden sind.

CDC::GetLayout

Rufen Sie diese Memberfunktion auf, um das Layout des Texts und der Grafiken für einen Gerätekontext zu bestimmen, z. B. einen Drucker oder eine Metadatei.

DWORD GetLayout() const;

Rückgabewert

Bei erfolgreicher Ausführung werden die Layoutkennzeichnungen für den aktuellen Gerätekontext gekennzeichnet. Andernfalls GDI_ERROR. Rufen Sie für erweiterte Fehlerinformationen auf GetLastError. Eine Liste der Layoutkennzeichnungen finden Sie unter CDC::SetLayout.

Hinweise

Das Standardlayout ist von links nach rechts.

CDC::GetMapMode

Ruft den aktuellen Zuordnungsmodus ab.

int GetMapMode() const;

Rückgabewert

Der Zuordnungsmodus.

Hinweise

Eine Beschreibung der Zuordnungsmodi finden Sie in der SetMapMode Memberfunktion.

Hinweis

Wenn Sie aufrufen SetLayout , um das Layout "DC" in "Von rechts nach links" zu ändern, SetLayout wird der Zuordnungsmodus automatisch in MM_ISOTROPIC" geändert. Folglich werden alle nachfolgenden Aufrufe GetMapMode zurückgegeben MM_ISOTROPIC.

CDC::GetMiterLimit

Gibt den Mitergrenzwert für den Gerätekontext zurück.

float GetMiterLimit() const;

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Die Mitergrenze wird verwendet, wenn geometrische Linien mit Miter-Verknüpfungen gezeichnet werden.

CDC::GetNearestColor

Gibt die Volltonfarbe zurück, die am besten mit einer angegebenen logischen Farbe übereinstimmt.

COLORREF GetNearestColor(COLORREF crColor) const;

Parameter

crColor
Gibt die farbe an, die abgeglichen werden soll.

Rückgabewert

Ein RGB-Farbwert (Rot, Grün, Blau), der die Volltonfarbe definiert, die dem Wert am nächsten kommt, den crColor das Gerät darstellen kann.

Hinweise

Das angegebene Gerät muss diese Farbe darstellen können.

CDC::GetOutlineTextMetrics

Ruft Metrikinformationen für TrueType-Schriftarten ab.

UINT GetOutlineTextMetrics(
    UINT cbData,
    LPOUTLINETEXTMETRIC lpotm) const;

Parameter

lpotm
Verweist auf ein Array von OUTLINETEXTMETRIC Strukturen. Wenn dieser Parameter lautet, gibt die Funktion die Größe des puffers zurück, der für die abgerufenen Metrikdaten erforderlich ist NULL.

cbData
Gibt die Größe des Puffers in Bytes an, an den Informationen zurückgegeben werden.

lpotm
Verweist auf eine OUTLINETEXTMETRIC Struktur. Wenn dieser Parameter lautet, gibt die Funktion die Größe des Puffers zurück, der für die abgerufenen Metrikinformationen erforderlich ist NULL.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Die OUTLINETEXTMETRIC Struktur enthält die meisten Schriftartmetrikinformationen, die mit dem TrueType-Format bereitgestellt werden, einschließlich einer TEXTMETRIC Struktur. Die letzten vier Elemente der OUTLINETEXTMETRIC Struktur sind Zeiger auf Zeichenfolgen. Anwendungen sollten zusätzlich zum für die anderen Member erforderlichen Speicherplatz für diese Zeichenfolgen Platz zuweisen. Da für die Größe der Zeichenfolgen kein vom System auferlegter Grenzwert vorhanden ist, besteht die einfachste Methode zum Zuordnen des Arbeitsspeichers darin, die erforderliche Größe abzurufen, indem im ersten Aufruf der GetOutlineTextMetrics Funktion NULL lpotm angegeben wird.

CDC::GetOutputCharWidth

Verwendet den Ausgabegerätekontext m_hDCund ruft die Breite einzelner Zeichen in einer aufeinander folgenden Gruppe von Zeichen aus der aktuellen Schriftart ab.

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

Parameter

nFirstChar
Gibt das erste Zeichen in einer aufeinander folgenden Gruppe von Zeichen in der aktuellen Schriftart an.

nLastChar
Gibt das letzte Zeichen in einer aufeinander folgenden Gruppe von Zeichen in der aktuellen Schriftart an.

lpBuffer
Verweist auf einen Puffer, der die Breitenwerte für eine aufeinander folgende Gruppe von Zeichen in der aktuellen Schriftart empfängt.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Wenn beispielsweise nFirstChar der Buchstabe "a" identifiziert und nLastChar der Buchstabe "z" identifiziert wird, ruft die Funktion die Breite aller Kleinbuchstaben ab.

Die Funktion speichert die Werte im Puffer, auf die verwiesen wird.lpBuffer Dieser Puffer muss groß genug sein, um alle Breiten zu halten; d. h., es müssen mindestens 26 Einträge im angegebenen Beispiel vorhanden sein.

Wenn ein Zeichen in der aufeinander folgenden Zeichengruppe nicht in einer bestimmten Schriftart vorhanden ist, wird ihm der Breiteswert des Standardzeichens zugewiesen.

CDC::GetOutputTabbedTextExtent

Rufen Sie diese Memberfunktion auf, um die Breite und Höhe einer Zeichenfolge mithilfe m_hDCdes Ausgabegerätekontexts zu berechnen.

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

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

Parameter

lpszString
Verweist auf eine zu messende Zeichenfolge. Sie können auch ein CString Objekt für diesen Parameter übergeben.

nCount
Gibt die Länge der Zeichenfolge an, auf die verwiesen wird lpszString.

nTabPositions
Gibt die Anzahl der Tabstopppositionen im Array an, auf das lpnTabStopPositionsverwiesen wird.

lpnTabStopPositions
Verweist auf ein Array von ganzen Zahlen, die die Tabstopppositionen in logischen Einheiten enthalten. Die Tabstopps müssen in zunehmender Reihenfolge sortiert werden. Der kleinste x-Wert sollte das erste Element im Array sein. Zurück-Registerkarten sind nicht zulässig.

str
Ein CString Objekt, das die angegebenen Zeichen enthält, die gemessen werden sollen.

Rückgabewert

Die Dimensionen der Zeichenfolge (in logischen Einheiten) in einem CSize Objekt.

Hinweise

Wenn die Zeichenfolge mindestens ein Tabstoppzeichen enthält, basiert die Breite der Zeichenfolge auf den tabstopps, die durch lpnTabStopPositions. Die Funktion verwendet die aktuell ausgewählte Schriftart, um die Dimensionen der Zeichenfolge zu berechnen.

Der aktuelle Clippingbereich versetzt die von der GetOutputTabbedTextExtent Funktion zurückgegebene Breite und Höhe nicht.

Da einige Geräte Keine Zeichen in regulären Zellarrays platzieren (d. h. sie kernieren die Zeichen), ist die Summe der Ausdehnungen der Zeichen in einer Zeichenfolge möglicherweise nicht gleich dem Umfang der Zeichenfolge.

Wenn nTabPositions 0 ist und lpnTabStopPositions ist NULL, werden Registerkarten auf acht durchschnittliche Zeichenbreiten erweitert. Wenn nTabPositions 1 ist, werden die Tabstopps durch den Abstand getrennt, der durch den ersten Wert im Array angegeben wird, zu dem lpnTabStopPositions Punkte gehören. Wenn lpnTabStopPositions sie auf mehr als einen einzelnen Wert verweist, wird für jeden Wert im Array ein Tabstopp bis zur angegebenen nTabPositionsZahl festgelegt.

CDC::GetOutputTextExtent

Rufen Sie diese Memberfunktion auf, um den Ausgabegerätekontext zu verwenden und m_hDCdie Breite und Höhe einer Textzeile mithilfe der aktuellen Schriftart zu berechnen.

CSize GetOutputTextExtent(
    LPCTSTR lpszString,
    int nCount) const;

CSize GetOutputTextExtent(const CString& str) const;

Parameter

lpszString
Verweist auf eine Zeichenfolge von Zeichen. Sie können auch ein CString Objekt für diesen Parameter übergeben.

nCount
Gibt die Länge der Zeichenfolge an, auf die verwiesen wird lpszString.

str
Ein CString Objekt, das die angegebenen Zeichen enthält, die gemessen werden sollen.

Rückgabewert

Die Dimensionen der Zeichenfolge (in logischen Einheiten), die in einem CSize Objekt zurückgegeben werden.

Hinweise

Der aktuelle Clippingbereich wirkt sich nicht auf die Breite und Höhe aus, die von GetOutputTextExtent.

Da einige Geräte Keine Zeichen in regulären Zellarrays platzieren (d. h. sie führen Kerning aus), ist die Summe der Ausdehnungen der Zeichen in einer Zeichenfolge möglicherweise nicht gleich dem Umfang der Zeichenfolge.

CDC::GetOutputTextMetrics

Ruft die Metriken für die aktuelle Schriftart mithilfe m_hDCdes Ausgabegerätekontexts ab.

BOOL GetOutputTextMetrics(LPTEXTMETRIC lpMetrics) const;

Parameter

lpMetrics
Verweist auf die TEXTMETRIC Struktur, die die Metriken empfängt.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

CDC::GetPath

Ruft die Koordinaten ab, die die Endpunkte von Linien und die Kontrollpunkte von Kurven definieren, die im Pfad gefunden werden, der im Gerätekontext ausgewählt ist.

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

Parameter

lpPoints
Verweist auf ein Array von POINT Datenstrukturen oder CPoint Objekten, in denen die Linienendpunkte und Kurvensteuerungspunkte platziert werden.

lpTypes
Verweist auf ein Bytearray, in dem die Vertextypen platziert werden. Die Werte sind eine der folgenden:

  • PT_MOVETO Gibt an, dass der entsprechende Punkt in lpPoints einer nicht zusammenhängenden Abbildung beginnt.

  • PT_LINETO Gibt an, dass der vorherige Punkt und der entsprechende Punkt lpPoints die Endpunkte einer Linie sind.

  • PT_BEZIERTO Gibt an, dass der entsprechende Punkt lpPoints ein Kontrollpunkt oder Endpunkt für eine Bzierkurve ist.

PT_BEZIERTO Typen treten immer in Gruppen von drei auf. Der Punkt im Pfad unmittelbar vor ihnen definiert den Ausgangspunkt für die Bzierkurve. Die ersten beiden PT_BEZIERTO Punkte sind die Kontrollpunkte, und der dritte PT_BEZIERTO Punkt ist der Endpunkt (wenn hartcodiert).

Ein PT_LINETO oder PT_BEZIERTO ein Typ kann mit der folgenden Kennzeichnung kombiniert werden (mit dem bitweisen Operator ODER), um anzugeben, dass der entsprechende Punkt der letzte Punkt in einer Abbildung ist und dass die Abbildung geschlossen werden soll:

  • PT_CLOSEFIGURE Gibt an, dass die Abbildung automatisch geschlossen wird, nachdem die entsprechende Linie oder Kurve gezeichnet wurde. Die Abbildung wird geschlossen, indem eine Linie vom Linien- oder Kurvenendpunkt bis zum Punkt gezeichnet wird, der dem letzten PT_MOVETOentspricht.

nCount
Gibt die Gesamtanzahl der POINT Datenstrukturen an, die lpPoints im Array platziert werden können. Dieser Wert muss mit der Anzahl der Bytes übereinstimmen, die lpTypes möglicherweise im Array platziert werden.

Rückgabewert

Wenn der nCount Parameter nicht null ist, wird die Anzahl der punkte aufgezählt. Wenn nCount 0 ist, wird die Gesamtanzahl der Punkte im Pfad (und GetPath schreibt nichts in die Puffer). Ist nCount "nonzero" und kleiner als die Anzahl der Punkte im Pfad, lautet der Rückgabewert -1.

Hinweise

Der Gerätekontext muss einen geschlossenen Pfad enthalten. Die Punkte des Pfads werden in logischen Koordinaten zurückgegeben. Punkte werden im Pfad in Gerätekoordinaten gespeichert, sodass GetPath die Punkte von Gerätekoordinaten mithilfe der Umkehrung der aktuellen Transformation in logische Koordinaten geändert werden. Die FlattenPath Memberfunktion kann vor GetPathdem Aufruf aufgerufen werden, um alle Kurven im Pfad in Liniensegmente zu konvertieren.

Beispiel

Sehen Sie sich das Beispiel für CDC::BeginPath.

CDC::GetPixel

Ruft den RGB-Farbwert des Pixels an dem punkt ab, der durch x und *y*angegeben wird.

COLORREF GetPixel(
    int x,
    int y) const;

COLORREF GetPixel(POINT point) const;

Parameter

x
Gibt die logische x-Koordinate des zu untersuchenden Punkts an.

y
Gibt die logische y-Koordinate des zu untersuchenden Punkts an.

point
Gibt die logischen x- und y-Koordinaten des zu untersuchenden Punkts an.

Rückgabewert

Für beide Versionen der Funktion ist ein RGB-Farbwert für die Farbe des angegebenen Punkts angegeben. Dies ist -1, wenn die Koordinaten keinen Punkt im Clippingbereich angeben.

Hinweise

Der Punkt muss sich im Beschneidungsbereich befinden. Wenn sich der Punkt nicht im Clippingbereich befindet, hat die Funktion keine Auswirkung und gibt -1 zurück.

Nicht alle Geräte unterstützen die GetPixel-Funktion. Weitere Informationen finden Sie in der RC_BITBLT Rasterfunktion unter der GetDeviceCaps Memberfunktion.

Die GetPixel Memberfunktion weist zwei Formen auf. Die erste akzeptiert zwei Koordinatenwerte; die zweite eine Struktur oder ein CPoint Objekt verwendetPOINT.

CDC::GetPolyFillMode

Ruft den aktuellen Polygonfüllmodus ab.

int GetPolyFillMode() const;

Rückgabewert

Der aktuelle polygongefüllte Modus ALTERNATE oder WINDING, wenn die Funktion erfolgreich ist.

Hinweise

Eine Beschreibung der Polygonfüllmodi finden Sie in der SetPolyFillMode Memberfunktion.

CDC::GetROP2

Ruft den aktuellen Zeichnungsmodus ab.

int GetROP2() const;

Rückgabewert

Der Zeichnungsmodus. Eine Liste der Werte für den Zeichnungsmodus finden Sie in der SetROP2 Memberfunktion.

Hinweise

Der Zeichnungsmodus gibt an, wie die Farben des Stifts und das Innere gefüllter Objekte mit der Farbe kombiniert werden, die sich bereits auf der Anzeigeoberfläche befindet.

CDC::GetSafeHdc

Rufen Sie diese Memberfunktion auf, um den Ausgabegerätekontext abzurufen m_hDC.

HDC GetSafeHdc() const;

Rückgabewert

Ein Gerätekontexthandle.

Hinweise

Diese Memberfunktion funktioniert auch mit Nullzeigern.

CDC::GetStretchBltMode

Ruft den aktuellen Bitmapdehnungsmodus ab.

int GetStretchBltMode() const;

Rückgabewert

Der Rückgabewert gibt den aktuellen Bitmapdehnungsmodus ( STRETCH_ANDSCANS, , oder STRETCH_ORSCANS ) an, STRETCH_DELETESCANSwenn die Funktion erfolgreich ist.

Hinweise

Der Bitmap-Stretchmodus definiert, wie Informationen aus Bitmaps entfernt werden, die von der StretchBlt Memberfunktion gestreckt oder komprimiert werden.

Die STRETCH_ANDSCANS Modi STRETCH_ORSCANS werden in der Regel verwendet, um Vordergrundpixel in monochromen Bitmaps beizubehalten. Der STRETCH_DELETESCANS Modus wird in der Regel verwendet, um Farben in Farbbitmaps beizubehalten.

CDC::GetTabbedTextExtent

Rufen Sie diese Memberfunktion auf, um die Breite und Höhe einer Zeichenfolge mithilfe m_hAttribDCdes Attributgerätekontexts zu berechnen.

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

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

Parameter

lpszString
Verweist auf eine Zeichenfolge. Sie können auch ein CString Objekt für diesen Parameter übergeben.

nCount
Gibt die Länge der Zeichenfolge an, auf die verwiesen wird lpszString.

nTabPositions
Gibt die Anzahl der Tabstopppositionen im Array an, auf das lpnTabStopPositionsverwiesen wird.

lpnTabStopPositions
Verweist auf ein Array von ganzen Zahlen, die die Tabstopppositionen in logischen Einheiten enthalten. Die Tabstopps müssen in zunehmender Reihenfolge sortiert werden. Der kleinste x-Wert sollte das erste Element im Array sein. Zurück-Registerkarten sind nicht zulässig.

str
Ein CString Objekt, das die angegebenen Zeichen enthält, die gezeichnet werden sollen.

Rückgabewert

Die Dimensionen der Zeichenfolge (in logischen Einheiten) in einem CSize Objekt.

Hinweise

Wenn die Zeichenfolge mindestens ein Tabstoppzeichen enthält, basiert die Breite der Zeichenfolge auf den tabstopps, die durch lpnTabStopPositions. Die Funktion verwendet die aktuell ausgewählte Schriftart, um die Dimensionen der Zeichenfolge zu berechnen.

Der aktuelle Clippingbereich versetzt die von der GetTabbedTextExtent Funktion zurückgegebene Breite und Höhe nicht.

Da einige Geräte Keine Zeichen in regulären Zellarrays platzieren (d. h. sie kernieren die Zeichen), ist die Summe der Ausdehnungen der Zeichen in einer Zeichenfolge möglicherweise nicht gleich dem Umfang der Zeichenfolge.

Wenn nTabPositions 0 ist und lpnTabStopPositions ist NULL, werden Tabstopps auf acht mal die durchschnittliche Zeichenbreite erweitert. Wenn nTabPositions 1 ist, werden die Tabstopps durch den Abstand getrennt, der durch den ersten Wert im Array angegeben wird, zu dem lpnTabStopPositions Punkte gehören. Wenn lpnTabStopPositions sie auf mehr als einen einzelnen Wert verweist, wird für jeden Wert im Array ein Tabstopp bis zur angegebenen nTabPositionsZahl festgelegt.

CDC::GetTextAlign

Ruft den Status der Textausrichtungskennzeichnungen für den Gerätekontext ab.

UINT GetTextAlign() const;

Rückgabewert

Der Status der Textausrichtungskennzeichnungen. Der Rückgabewert ist ein oder mehrere der folgenden Werte:

  • TA_BASELINE Gibt die Ausrichtung der X-Achse und die Basislinie der ausgewählten Schriftart innerhalb des umgebenden Rechtecks an.

  • TA_BOTTOM Gibt die Ausrichtung der X-Achse und des unteren Rands des umgebenden Rechtecks an.

  • TA_CENTER Gibt die Ausrichtung der Y-Achse und die Mitte des umgebenden Rechtecks an.

  • TA_LEFT Gibt die Ausrichtung der Y-Achse und die linke Seite des umgebenden Rechtecks an.

  • TA_NOUPDATECP Gibt an, dass die aktuelle Position nicht aktualisiert wird.

  • TA_RIGHT Gibt die Ausrichtung der Y-Achse und die rechte Seite des umgebenden Rechtecks an.

  • TA_TOP Gibt die Ausrichtung der X-Achse und den oberen Rand des umgebenden Rechtecks an.

  • TA_UPDATECP Gibt an, dass die aktuelle Position aktualisiert wird.

Hinweise

Die Textausrichtungskennzeichnungen bestimmen, wie die TextOut Funktionen und ExtTextOut Member eine Textzeichenfolge im Verhältnis zum Anfangspunkt der Zeichenfolge ausrichten. Die Textausrichtungskennzeichnungen sind nicht unbedingt Single-Bit-Flags und können gleich 0 sein. Um zu testen, ob ein Flag festgelegt ist, sollte eine Anwendung die folgenden Schritte ausführen:

  1. Wenden Sie den bitweisen OR (|) -Operator auf das Flag und die zugehörigen Flags an, gruppiert wie folgt:

    • TA_LEFT, TA_CENTER und TA_RIGHT

    • TA_BASELINE, TA_BOTTOM und TA_TOP

    • TA_NOUPDATECP und TA_UPDATECP

  2. Wenden Sie den C++-Operator bitweise UND (&) auf das Ergebnis und den Rückgabewert von GetTextAlign.

  3. Testen Sie die Gleichheit dieses Ergebnisses und der Kennzeichnung.

CDC::GetTextCharacterExtra

Ruft die aktuelle Einstellung für die Menge der Intercharacter-Abstände ab.

int GetTextCharacterExtra() const;

Rückgabewert

Die Menge des Intercharacterabstands.

Hinweise

GDI fügt diesen Abstand zu jedem Zeichen, einschließlich Umbruchzeichen, hinzu, wenn eine Textzeile in den Gerätekontext geschrieben wird.

Der Standardwert für die Menge des Intercharacterabstands ist 0.

CDC::GetTextColor

Ruft die aktuelle Textfarbe ab.

COLORREF GetTextColor() const;

Rückgabewert

Die aktuelle Textfarbe als RGB-Farbwert.

Hinweise

Die Textfarbe ist die Vordergrundfarbe von Zeichen, die mithilfe der GDI-Textausgabe-Memberfunktionen TextOut, ExtTextOutund TabbedTextOut.

CDC::GetTextExtent

Rufen Sie diese Memberfunktion auf, um die Breite und Höhe einer Textzeile mithilfe der aktuellen Schriftart zu berechnen, um die Abmessungen zu bestimmen.

CSize GetTextExtent(
    LPCTSTR lpszString,
    int nCount) const;

CSize GetTextExtent(const CString& str) const;

Parameter

lpszString
Verweist auf eine Zeichenfolge von Zeichen. Sie können auch ein CString Objekt für diesen Parameter übergeben.

nCount
Gibt die Anzahl von Zeichen in der Zeichenfolge an.

str
Ein CString Objekt, das die angegebenen Zeichen enthält.

Rückgabewert

Die Dimensionen der Zeichenfolge (in logischen Einheiten) in einem CSize Objekt.

Hinweise

Die Informationen werden aus m_hAttribDCdem Attributgerätekontext abgerufen.

Angenommen, der Text, für den die Dimension abgerufen wird, GetTextExtent wird standardmäßig entlang einer horizontalen Linie festgelegt (d. h. das Escapezeichen ist 0). Wenn Sie eine Schriftart erstellen, die ein Escapezeichen ungleich Null angibt, müssen Sie den Winkel des Texts explizit konvertieren, um die Abmessungen der Zeichenfolge abzurufen.

Der aktuelle Clippingbereich wirkt sich nicht auf die Breite und Höhe aus, die von GetTextExtent.

Da einige Geräte Keine Zeichen in regulären Zellarrays platzieren (d. h. sie führen Kerning aus), ist die Summe der Ausdehnungen der Zeichen in einer Zeichenfolge möglicherweise nicht gleich dem Umfang der Zeichenfolge.

CDC::GetTextExtentExPointI

Ruft die Anzahl der Zeichen in einer angegebenen Zeichenfolge ab, die in ein angegebenes Leerzeichen passt, und füllt ein Array mit der Textgröße für jedes dieser Zeichen aus.

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

Parameter

pgiIn
Ein Zeiger auf ein Array von Glyphenindizes, für die Ausmaße abgerufen werden sollen.

cgi
Gibt die Anzahl der Glyphen im Array an, auf das pgiInverwiesen wird.

nMaxExtent
Gibt die maximal zulässige Breite der formatierten Zeichenfolge in logischen Einheiten an.

lpnFit
Ein Zeiger auf eine ganze Zahl, die eine Anzahl der maximalen Anzahl von Zeichen empfängt, die in das durch nMaxExtent. Ist lpnFit dies NULLder Zeitpunkt, nMaxExtent wird ignoriert.

alpDx
Ein Zeiger auf ein Array ganzzahliger Zahlen, die teilweise Glyphenausdehnungen empfängt. Jedes Element im Array gibt den Abstand in logischen Einheiten zwischen dem Anfang des Glyphenindizesarrays und einer der Glyphen an, die in das durch nMaxExtent. Obwohl dieses Array mindestens so viele Elemente wie Glyphenindizes aufweisen cgisollte, füllt die Funktion das Array nur für so viele Glyphenindizes wie angegeben aus lpnFit. Ist lpnDx dies NULLder Grund, berechnet die Funktion keine teilweisen Zeichenfolgenbreiten.

lpSize
Zeiger auf eine SIZE Struktur, die die Dimensionen des Glyphenindizesarrays in logischen Einheiten empfängt. Dieser Wert darf nicht NULL sein.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Diese Memberfunktion emuliert die Funktionalität der Funktion GetTextExtentExPointI, wie im Windows SDK beschrieben.

CDC::GetTextExtentPointI

Ruft die Breite und Höhe des angegebenen Arrays von Glyphenindizes ab.

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

Parameter

pgiIn
Ein Zeiger auf ein Array von Glyphenindizes, für die Ausmaße abgerufen werden sollen.

cgi
Gibt die Anzahl der Glyphen im Array an, auf das pgiInverwiesen wird.

lpSize
Zeiger auf eine SIZE Struktur, die die Dimensionen des Glyphenindizesarrays in logischen Einheiten empfängt. Dieser Wert darf nicht NULL sein.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Diese Memberfunktion emuliert die Funktionalität der Funktion GetTextExtentPointI, wie im Windows SDK beschrieben.

CDC::GetTextFace

Rufen Sie diese Memberfunktion auf, um den Schriftartnamen der aktuellen Schriftart in einen Puffer zu kopieren.

int GetTextFace(
    int nCount,
    LPTSTR lpszFacename) const;

int GetTextFace(CString& rString) const;

Parameter

nCount
Gibt die Größe des Puffers (in Bytes) an. Wenn der Name der Schriftart länger als die Anzahl der by diesem Parameter angegebenen Bytes ist, wird der Name abgeschnitten.

lpszFacename
Verweist auf den Puffer für den Namen der Schriftart.

rString
Ein Verweis auf ein CString-Objekt.

Rückgabewert

Die Anzahl der in den Puffer kopierten Bytes, nicht einschließlich des endenden Nullzeichens. Dies ist 0, wenn ein Fehler auftritt.

Hinweise

Der Name der Schriftart wird als null-beendete Zeichenfolge kopiert.

CDC::GetTextMetrics

Ruft die Metriken für die aktuelle Schriftart mithilfe des Attributgerätekontexts ab.

BOOL GetTextMetrics(LPTEXTMETRIC lpMetrics) const;

Parameter

lpMetrics
Verweist auf die TEXTMETRIC Struktur, die die Metriken empfängt.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

CDC::GetViewportExt

Ruft die x- und y-Erweiterungen des Viewports des Gerätekontexts ab.

CSize GetViewportExt() const;

Rückgabewert

Die x- und y-Erweiterung (in Geräteeinheiten) als CSize Objekt.

CDC::GetViewportOrg

Ruft die x- und y-Koordinaten des Ursprungs des Viewports ab, der dem Gerätekontext zugeordnet ist.

CPoint GetViewportOrg() const;

Rückgabewert

Der Ursprung des Viewports (in Gerätekoordinaten) als CPoint Objekt.

CDC::GetWindow

Gibt das Fenster zurück, das dem Anzeigegerätekontext zugeordnet ist.

CWnd* GetWindow() const;

Rückgabewert

Zeigen Sie bei erfolgreicher Ausführung auf ein CWnd Objekt. Andernfalls NULL.

Hinweise

Dies ist eine erweiterte Funktion. Diese Memberfunktion gibt z. B. das Ansichtsfenster beim Drucken oder in der Seitenansicht möglicherweise nicht zurück. Es wird immer das Fenster zurückgegeben, das der Ausgabe zugeordnet ist. Ausgabefunktionen, die die angegebene DC-Zeichnung in diesem Fenster verwenden.

CDC::GetWindowExt

Ruft die x- und y-Erweiterung des Fensters ab, das dem Gerätekontext zugeordnet ist.

CSize GetWindowExt() const;

Rückgabewert

Die x- und y-Erweiterung (in logischen Einheiten) als CSize Objekt.

CDC::GetWindowOrg

Ruft die x- und y-Koordinaten des Ursprungs des Fensters ab, das dem Gerätekontext zugeordnet ist.

CPoint GetWindowOrg() const;

Rückgabewert

Der Ursprung des Fensters (in logischen Koordinaten) als CPoint Objekt.

CDC::GetWorldTransform

Ruft die aktuelle Weltfläche zur Seitenbereichtransformation ab.

BOOL GetWorldTransform(XFORM& rXform) const;

Parameter

rXform
Verweis auf eine XFORM Struktur, die den aktuellen Weltraum zur Seitenbereichtransformation empfängt.

Rückgabewert

Gibt einen Wert ungleich Null bei Erfolg zurück.

Gibt 0 für Fehler zurück.

Um erweiterte Fehlerinformationen abzurufen, rufen Sie GetLastError auf.

Hinweise

Diese Methode umschließt die Windows GDI-Funktion GetWorldTransform.

CDC::GradientFill

Rufen Sie diese Memberfunktion auf, um Rechteck- und Dreiecksstrukturen mit Farbe zu füllen, die von einer Seite zum anderen glatt ausgeblendet wird.

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

Parameter

pVertices
Zeigen Sie auf ein Array von TRIVERTEX Strukturen, die jeweils einen Dreiecksvertex definieren.

nVertices
Die Anzahl der Scheitelpunkte.

pMesh
Array von GRADIENT_TRIANGLE Strukturen im Dreiecksmodus oder ein Array von GRADIENT_RECT Strukturen im Rechteckmodus.

nMeshElements
Die Anzahl der Elemente (Dreiecke oder Rechtecke) in pMesh.

dwMode
Gibt den Farbverlaufsmodus an. Eine Liste der möglichen Werte finden Sie im GradientFill Windows SDK.

Rückgabewert

TRUE, wenn erfolgreich, andernfalls FALSE.

Hinweise

Weitere Informationen finden Sie im GradientFill Windows SDK.

CDC::GrayString

Zeichnet abgeblendeten (grauen) Text an der angegebenen Position, indem der Text in eine Speicherbitmap geschrieben wird, die Bitmap abgeblendet wird und dann die Bitmap in die Anzeige kopiert wird.

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

Parameter

pBrush
Gibt den Pinsel an, der für die Dimmung (Grauung) verwendet werden soll.

lpfnOutput
Gibt die Prozedurinstanzadresse der vom Anwendung bereitgestellten Rückruffunktion an, die die Zeichenfolge zeichnet. Weitere Informationen finden Sie in der Beschreibung der Windows-RückruffunktionOutputFunc. Wenn dieser Parameter lautet NULL, verwendet das System die Windows-Funktion TextOut , um die Zeichenfolge zu zeichnen, und lpData wird angenommen, dass es sich um einen langen Zeiger auf die zeichenzeichenfolge handelt, die ausgegeben werden soll.

lpData
Gibt einen zeigerreichen Zeiger auf Daten an, die an die Ausgabefunktion übergeben werden sollen. Ist lpfnOutput dies NULLder Wert , lpData muss ein langer Zeiger auf die Zeichenfolge sein, die ausgegeben werden soll.

nCount
Gibt die Anzahl der auszuzugebenden Zeichen an. Wenn dieser Parameter 0 ist, GrayString wird die Länge der Zeichenfolge berechnet (vorausgesetzt, dies lpData ist ein Zeiger auf die Zeichenfolge). Wenn nCount "1" und die Funktion mit lpfnOutput dem Wert "0" verweist, wird das Bild angezeigt, aber nicht abgeblendet.

x
Gibt die logische x-Koordinate der Startposition des Rechtecks an, das die Zeichenfolge einschließt.

y
Gibt die logische y-Koordinate der Startposition des Rechtecks an, das die Zeichenfolge einschließt.

nWidth
Gibt die Breite (in logischen Einheiten) des Rechtecks an, das die Zeichenfolge einschließt. Wenn nWidth 0 ist, berechnet die Breite des Bereichs, vorausgesetzt, GrayString es handelt sich lpData um einen Zeiger auf die Zeichenfolge.

nHeight
Gibt die Höhe (in logischen Einheiten) des Rechtecks an, das die Zeichenfolge einschließt. Wenn nHeight 0 ist, berechnet die Höhe des Bereichs, vorausgesetzt, GrayString es handelt sich lpData um einen Zeiger auf die Zeichenfolge.

Rückgabewert

Nonzero, wenn die Zeichenfolge gezeichnet wird, oder 0, wenn entweder die TextOut Funktion oder die vom Anwendung bereitgestellte Ausgabefunktion 0 zurückgegeben wurde, oder wenn nicht genügend Arbeitsspeicher vorhanden war, um eine Speicherbitmap zum Dimmen zu erstellen.

Hinweise

Mit der Funktion wird der Text unabhängig vom ausgewählten Pinsel und Hintergrund abgeblendet. Die GrayString Memberfunktion verwendet die aktuell ausgewählte Schriftart. Der Zuordnungsmodus MM_TEXT muss vor der Verwendung dieser Funktion ausgewählt werden.

Eine Anwendung kann abgeblendete (abgeblendete) Zeichenfolgen auf Geräten zeichnen, die eine vollgraue Farbe unterstützen, ohne die GrayString Memberfunktion aufzurufen. Die Systemfarbe COLOR_GRAYTEXT ist die Volltongrau-Systemfarbe, die zum Zeichnen von deaktiviertem Text verwendet wird. Die Anwendung kann die GetSysColor Windows-Funktion aufrufen, um den Farbwert von COLOR_GRAYTEXT. Wenn die Farbe nicht 0 (schwarz) ist, kann die Anwendung die SetTextColor Memberfunktion aufrufen, um die Textfarbe auf den Farbwert festzulegen, und dann die Zeichenfolge direkt zeichnen. Wenn die abgerufene Farbe schwarz ist, muss die Anwendung den Text abblenden (grau) aufrufen GrayString .

Wenn lpfnOutput ja NULL, verwendet GDI die Windows-Funktion TextOut und lpData wird davon ausgegangen, dass es sich um einen weit entfernten Zeiger auf das Zeichen handelt, das ausgegeben werden soll. Wenn die auszuzugebenden Zeichen nicht von der TextOut Memberfunktion behandelt werden können (z. B. wird die Zeichenfolge als Bitmap gespeichert), muss die Anwendung eine eigene Ausgabefunktion bereitstellen.

Alle Rückruffunktionen müssen Microsoft Foundation-Ausnahmen abfangen, bevor sie zu Windows zurückkehren, da Ausnahmen nicht über Rückrufgrenzen hinweg ausgelöst werden können. Weitere Informationen zu Ausnahmen finden Sie im Artikel "Ausnahmen".

Die an die Aufrufkonvention übergebene GrayString Rückruffunktion muss die __stdcall Aufrufkonvention verwenden und mit __declspec.

Wenn sich das Framework im Vorschaumodus befindet, wird ein Aufruf der GrayString Memberfunktion in einen TextOut Aufruf übersetzt, und die Rückruffunktion wird nicht aufgerufen.

CDC::HIMETRICtoDP

Verwenden Sie diese Funktion, wenn Sie Größen von OLE in Pixel konvertieren HIMETRIC .

void HIMETRICtoDP(LPSIZE lpSize) const;

Parameter

lpSize
Verweist auf eine Struktur oder CSize ein SIZE Objekt.

Hinweise

Wenn der Zuordnungsmodus des Gerätekontextobjekts MM_LOENGLISHoder MM_HIENGLISHMM_LOMETRICMM_HIMETRICdie Konvertierung auf der Anzahl der Pixel im physischen Zoll basiert. Wenn der Zuordnungsmodus eines der anderen nicht eingeschränkten Modi ist (z MM_TEXT. B. ), basiert die Konvertierung auf der Anzahl der Pixel im logischen Zoll.

CDC::HIMETRICtoLP

Rufen Sie diese Funktion auf, um Einheiten in logische Einheiten umzuwandeln HIMETRIC .

void HIMETRICtoLP(LPSIZE lpSize) const;

Parameter

lpSize
Verweist auf eine Struktur oder CSize ein SIZE Objekt.

Hinweise

Verwenden Sie diese Funktion, wenn Sie Größen aus OLE abrufen HIMETRIC und diese in den natürlichen Zuordnungsmodus Ihrer Anwendung konvertieren möchten.

Die Konvertierung erfolgt, indem zuerst die HIMETRIC Einheiten in Pixel konvertiert und dann mithilfe der aktuellen Zuordnungseinheiten des Gerätekontexts in logische Einheiten konvertiert werden. Beachten Sie, dass sich die Ausmaße des Gerätefensters und des Viewports auf das Ergebnis auswirken.

CDC::IntersectClipRect

Erstellt einen neuen Beschneidungsbereich, indem der Schnittpunkt des aktuellen Bereichs und das durch x1, y1, , x2und y2.

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

int IntersectClipRect(LPCRECT lpRect);

Parameter

x1
Gibt die logische x-Koordinate der oberen linken Ecke des Rechtecks an.

y1
Gibt die logische y-Koordinate der oberen linken Ecke des Rechtecks an.

x2
Gibt die logische x-Koordinate der unteren rechten Ecke des Rechtecks an.

y2
Gibt die logische y-Koordinate der unteren rechten Ecke des Rechtecks an.

lpRect
Gibt das Rechteck an. Sie können entweder ein CRect Objekt oder einen Zeiger an eine RECT Struktur für diesen Parameter übergeben.

Rückgabewert

Der Typ des neuen Clippingbereichs. Dabei kann es sich um einen der folgenden Werte handeln:

  • COMPLEXREGION Der neue Clippingbereich hat überlappende Rahmen.

  • ERROR Der Gerätekontext ist ungültig.

  • NULLREGION Der neue Beschneidungsbereich ist leer.

  • SIMPLEREGION Der neue Beschneidungsbereich weist keine überlappenden Rahmen auf.

Hinweise

GDI clipst alle nachfolgenden Ausgaben, die in die neue Grenze passen. Die Breite und Höhe darf 32.767 nicht überschreiten.

CDC::InvertRect

Umkehrt den Inhalt des angegebenen Rechtecks.

void InvertRect(LPCRECT lpRect);

Parameter

lpRect
Verweist auf eine RECT , die die logischen Koordinaten des Rechtecks enthält, das invertiert werden soll. Sie können auch ein CRect Objekt für diesen Parameter übergeben.

Hinweise

Inversion ist ein logischer NOT-Vorgang und kippt die Bits der einzelnen Pixel. Bei monochromen Displays macht die Funktion weiße Pixel schwarz und schwarz weiß. Bei Farbanzeigen hängt die Inversion davon ab, wie Farben für die Anzeige generiert werden. Durch das zweimalige Aufrufen InvertRect mit demselben Rechteck wird die Anzeige in den vorherigen Farben wiederhergestellt.

Wenn das Rechteck leer ist, wird nichts gezeichnet.

Beispiel

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

Invertiert die Farben in dem durch .pRgn

BOOL InvertRgn(CRgn* pRgn);

Parameter

pRgn
Gibt die Region an, die invertiert werden soll. Die Koordinaten für den Bereich werden in logischen Einheiten angegeben.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Bei monochromen Displays macht die Funktion weiße Pixel schwarz und schwarz weiß. Bei Farbanzeigen hängt die Inversion davon ab, wie die Farben für die Anzeige generiert werden.

CDC::IsPrinting

Bestimmt, ob der Gerätekontext zum Drucken verwendet wird.

BOOL IsPrinting() const;

Rückgabewert

Nonzero, wenn das CDC Objekt ein Drucker DC ist; andernfalls 0.

CDC::LineTo

Zeichnet eine Linie von der aktuellen Position bis zum, aber nicht einschließlich des punkts, der durch x und y (oder point) angegeben ist.

BOOL LineTo(
    int x,
    int y);

BOOL LineTo(POINT point);

Parameter

x
Gibt die logische x-Koordinate des Endpunkts für die Linie an.

y
Gibt die logische y-Koordinate des Endpunkts für die Linie an.

point
Gibt den Endpunkt für die Zeile an. Sie können entweder eine POINT Struktur oder ein CPoint Objekt für diesen Parameter übergeben.

Rückgabewert

Nonzero, wenn die Linie gezeichnet wird; andernfalls 0.

Hinweise

Die Linie wird mit dem ausgewählten Stift gezeichnet. Die aktuelle Position ist auf xoder y auf point.

Beispiel

Sehen Sie sich das Beispiel für CRect::CenterPoint.

CDC::LPtoDP

Wandelt logische Einheiten in Geräteeinheiten um.

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

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

Parameter

lpPoints
Verweist auf ein Array von Punkten. Jeder Punkt im Array ist eine POINT Struktur oder ein CPoint Objekt.

nCount
Die Anzahl der Punkte im Array.

lpRect
Verweist auf eine RECT Struktur oder ein CRect Objekt. Dieser Parameter wird für den allgemeinen Fall der Zuordnung eines Rechtecks von logischen zu Geräteeinheiten verwendet.

lpSize
Verweist auf eine SIZE Struktur oder ein CSize Objekt.

Hinweise

Die Funktion ordnet die Koordinaten der einzelnen Punkte oder Dimensionen einer Größe vom logischen Koordinatensystem von GDI in ein Gerätekoordinatensystem zu. Die Konvertierung hängt vom aktuellen Zuordnungsmodus und den Einstellungen der Ursprünge und Ausmaße des Fensters und des Viewports des Geräts ab.

Die x- und y-Koordinaten von Punkten sind 2-Byte-Ganzzahlen im Bereich von -32.768 bis 32.767. In Fällen, in denen der Zuordnungsmodus zu Werten führen würde, die größer als diese Grenzwerte sind, legt das System die Werte auf -32.768 bzw. 32.767 fest.

CDC::LPtoHIMETRIC

Rufen Sie diese Funktion auf, um logische Einheiten in HIMETRIC Einheiten zu konvertieren.

void LPtoHIMETRIC(LPSIZE lpSize) const;

Parameter

lpSize
Verweist auf eine SIZE Struktur oder ein CSize Objekt.

Hinweise

Verwenden Sie diese Funktion, wenn Sie OLE Größen zuordnen HIMETRIC und aus dem natürlichen Zuordnungsmodus Ihrer Anwendung konvertieren. Die Ausmaße des Gerätefensters und des Viewports wirken sich auf das Ergebnis aus.

Die Konvertierung erfolgt, indem zuerst die logischen Einheiten mithilfe der aktuellen Zuordnungseinheiten des Gerätekontexts in Pixel konvertiert und dann in HIMETRIC Einheiten konvertiert werden.

CDC::m_hAttribDC

Der Attributgerätekontext für dieses CDC Objekt.

HDC m_hAttribDC;

Hinweise

Dieser Gerätekontext ist standardmäßig gleich m_hDC. Im Allgemeinen werden GDI-Aufrufe, die Informationen aus dem Gerätekontext anfordern, CDC angeleitet m_hAttribDC. Weitere Informationen zur Verwendung dieser beiden Gerätekontexte finden Sie in der CDC Klassenbeschreibung.

CDC::m_hDC

Der Ausgabegerätekontext für dieses CDC Objekt.

HDC m_hDC;

Hinweise

Ist standardmäßig m_hDC gleich m_hAttribDC, der andere Gerätekontext umschlossen von CDC. Im Allgemeinen wechseln GDI-Aufrufe, die eine Ausgabe erstellen, CDC zum m_hDC Gerätekontext. Sie können auf verschiedene Geräte initialisieren m_hDC und m_hAttribDC darauf verweisen. Weitere Informationen zur Verwendung dieser beiden Gerätekontexte finden Sie in der CDC Klassenbeschreibung.

CDC::MaskBlt

Kombiniert die Farbdaten für die Quell- und Zielbitmaps mithilfe des angegebenen Masken- und Rastervorgangs.

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

Parameter

x
Gibt die logische x-Koordinate der oberen linken Ecke des Zielrechtecks an.

y
Gibt die logische y-Koordinate der oberen linken Ecke des Zielrechtecks an.

nWidth
Gibt die Breite des Zielrechtecks und der Quellbitmap in logischen Einheiten an.

nHeight
Gibt die Höhe des Zielrechtecks und der Quellbitmap in logischen Einheiten an.

pSrcDC
Gibt den Gerätekontext an, aus dem die Bitmap kopiert werden soll. Er muss null sein, wenn der dwRop Parameter einen Rastervorgang angibt, der keine Quelle enthält.

xSrc
Gibt die logische x-Koordinate der oberen linken Ecke der Quellbitmap an.

ySrc
Gibt die logische y-Koordinate der oberen linken Ecke der Quellbitmap an.

maskBitmap
Identifiziert die monochrome Maskenbitmap in Kombination mit der Farbbitmap im Quellgerätekontext.

xMask
Gibt den horizontalen Pixeloffset für die durch den maskBitmap Parameter angegebene Maskenbitmap an.

yMask
Gibt den vertikalen Pixeloffset für die durch den maskBitmap Parameter angegebene Maskenbitmap an.

dwRop
Gibt sowohl Vordergrund- als auch Hintergrund-ternäre Rastervorgangscodes an, die von der Funktion verwendet werden, um die Kombination aus Quell- und Zieldaten zu steuern. Der Code für den Hintergrundrastervorgang wird im hohen Byte des hohen Worts dieses Werts gespeichert. der Vordergrundrastervorgangscode wird im niedrigen Byte des hohen Worts dieses Werts gespeichert. Das niedrige Wort dieses Werts wird ignoriert und sollte null sein. Das Makro MAKEROP4 erstellt solche Kombinationen aus Vordergrund- und Hintergrundrastervorgangscodes. Eine Erläuterung des Vordergrunds und des Hintergrunds im Kontext dieser Funktion finden Sie im Abschnitt "Hinweise". Eine Liste allgemeiner Rastervorgangscodes finden Sie in der BitBlt Memberfunktion.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Ein Wert von 1 in der durch die Maske angegebenen maskBitmap Maske gibt an, dass der angegebene Code für den Vordergrundrastervorgang dwRop an dieser Position angewendet werden soll. Der Wert 0 in der Maske gibt an, dass der code dwRop für den Hintergrundrastervorgang an dieser Stelle angewendet werden soll. Wenn für die Rastervorgänge eine Quelle erforderlich ist, muss das Maskenrechteck das Quellrechteck abdecken. Ist dies nicht der Fehler, schlägt die Funktion fehl. Wenn für die Rastervorgänge keine Quelle erforderlich ist, muss das Maskenrechteck das Zielrechteck abdecken. Ist dies nicht der Fehler, schlägt die Funktion fehl.

Wenn eine Drehung oder Schubtransformation für den Quellgerätekontext wirksam ist, wenn diese Funktion aufgerufen wird, tritt ein Fehler auf. Andere Transformationstypen sind jedoch zulässig.

Wenn sich die Farbformate der Quell-, Muster- und Zielbitmaps unterscheiden, konvertiert diese Funktion das Muster oder das Quellformat oder beides entsprechend dem Zielformat. Wenn die Maskenbitmap keine monochrome Bitmap ist, tritt ein Fehler auf. Wenn eine erweiterte Metadatei aufgezeichnet wird, tritt ein Fehler auf (und die Funktion gibt 0 zurück), wenn der Quellgerätekontext einen Erweitert-Metafile-Gerätekontext identifiziert. Nicht alle Geräte unterstützen MaskBlt. Eine Anwendung sollte aufrufen GetDeviceCaps , um festzustellen, ob ein Gerät diese Funktion unterstützt. Wenn keine Maskenbitmap bereitgestellt wird, verhält sich diese Funktion genau wie BitBltbeim Vordergrundrastervorgangscode. Der Pixelversatz in der Bitmapzuordnung des Maskenformats zum Punkt (0,0) in der Bitmap des Quellgeräts. Dies ist nützlich für Fälle, in denen eine Maskenbitmap einen Satz von Masken enthält; Eine Anwendung kann auf einfache Weise einen von ihnen auf eine Masken-Litting-Aufgabe anwenden, indem sie die Pixelversatz- und Rechteckgrößen anpassen, an die MaskBltgesendet wird.

CDC::ModifyWorldTransform

Ändert die Welttransformation für einen Gerätekontext mithilfe des angegebenen Modus.

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

Parameter

rXform
Verweis auf eine XFORM Struktur, die zum Ändern der Welttransformation für den jeweiligen Gerätekontext verwendet wird.

iMode
Gibt an, wie die Transformationsdaten die aktuelle Welttransformation ändern. Eine Liste der Werte, die dieser Parameter annehmen kann, finden Sie unter ModifyWorldTransform.

Rückgabewert

Gibt einen Wert ungleich Null bei Erfolg zurück.

Gibt 0 für Fehler zurück.

Um erweiterte Fehlerinformationen abzurufen, rufen Sie GetLastError auf.

Hinweise

Diese Methode umschließt die Windows GDI-Funktion ModifyWorldTransform.

CDC::MoveTo

Verschiebt die aktuelle Position an den durch x und y (oder nach point) angegebenen Punkt.

CPoint MoveTo(
    int x,
    int y);

CPoint MoveTo(POINT point);

Parameter

x
Gibt die logische x-Koordinate der neuen Position an.

y
Gibt die logische y-Koordinate der neuen Position an.

point
Gibt die neue Position an. Sie können entweder eine POINT Struktur oder ein CPoint Objekt für diesen Parameter übergeben.

Rückgabewert

Die x- und y-Koordinaten der vorherigen Position als CPoint Objekt.

Beispiel

Sehen Sie sich das Beispiel für CRect::CenterPoint.

CDC::OffsetClipRgn

Verschiebt den Clippingbereich des Gerätekontexts durch die angegebenen Offsets.

int OffsetClipRgn(
    int x,
    int y);

int OffsetClipRgn(SIZE size);

Parameter

x
Gibt die Anzahl der logischen Einheiten an, die nach links oder rechts verschoben werden sollen.

y
Gibt die Anzahl der logischen Einheiten an, die nach oben oder unten verschoben werden sollen.

size
Gibt den Betrag an, der versetzt werden soll.

Rückgabewert

Der Typ der neuen Region. Dabei kann es sich um einen der folgenden Werte handeln:

  • COMPLEXREGION Der Beschneidungsbereich hat überlappende Rahmen.

  • ERROR Der Gerätekontext ist ungültig.

  • NULLREGION Der Beschneidungsbereich ist leer.

  • SIMPLEREGION Der Beschneidungsbereich weist keine überlappenden Rahmen auf.

Hinweise

Die Funktion verschiebt die Bereichseinheiten x entlang der X-Achse und y Einheiten entlang der Y-Achse.

CDC::OffsetViewportOrg

Ändert die Koordinaten des Viewportursprungs relativ zu den Koordinaten des aktuellen Viewportursprungs.

virtual CPoint OffsetViewportOrg(
    int nWidth,
    int nHeight);

Parameter

nWidth
Gibt die Anzahl der Geräteeinheiten an, die der x-Koordinate des aktuellen Ursprungs hinzugefügt werden sollen.

nHeight
Gibt die Anzahl der Geräteeinheiten an, die der y-Koordinate des aktuellen Ursprungs hinzugefügt werden sollen.

Rückgabewert

Der vorherige Viewportursprung (in Gerätekoordinaten) als CPoint Objekt.

CDC::OffsetWindowOrg

Ändert die Koordinaten des Fensterursprungs relativ zu den Koordinaten des aktuellen Fensterursprungs.

CPoint OffsetWindowOrg(
    int nWidth,
    int nHeight);

Parameter

nWidth
Gibt die Anzahl der logischen Einheiten an, die der x-Koordinate des aktuellen Ursprungs hinzugefügt werden sollen.

nHeight
Gibt die Anzahl der logischen Einheiten an, die der y-Koordinate des aktuellen Ursprungs hinzugefügt werden sollen.

Rückgabewert

Der vorherige Fensterursprung (in logischen Koordinaten) als CPoint Objekt.

CDC::operator HDC

Verwenden Sie diesen Operator, um das Gerätekontexthandle des CDC Objekts abzurufen.

operator HDC() const;

Rückgabewert

Bei erfolgreicher Ausführung des Handles des Gerätekontextobjekts; andernfalls . NULL

Hinweise

Sie können das Handle verwenden, um Windows-APIs direkt aufzurufen.

CDC::PaintRgn

Füllt den mit pRgn dem aktuellen Pinsel angegebenen Bereich aus.

BOOL PaintRgn(CRgn* pRgn);

Parameter

pRgn
Identifiziert den zu füllenden Bereich. Die Koordinaten für den angegebenen Bereich werden in logischen Einheiten angegeben.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

CDC::PatBlt

Erstellt ein Bitmuster auf dem Gerät.

BOOL PatBlt(
    int x,
    int y,
    int nWidth,
    int nHeight,
    DWORD dwRop);

Parameter

x
Gibt die logische x-Koordinate der oberen linken Ecke des Rechtecks an, die das Muster empfangen soll.

y
Gibt die logische y-Koordinate der oberen linken Ecke des Rechtecks an, das das Muster empfängt.

nWidth
Gibt die Breite (in logischen Einheiten) des Rechtecks an, das das Muster empfängt.

nHeight
Gibt die Höhe (in logischen Einheiten) des Rechtecks an, das das Muster empfängt.

dwRop
Gibt den Rastervorgangscode an. Raster-Operation Codes (ROPs) definieren, wie GDI Farben in Ausgabevorgängen kombiniert, die einen aktuellen Pinsel, eine mögliche Quellbitmap und eine Zielbitmap enthalten. Dieser Parameter kann einen der folgenden -Werte aufweisen:

  • PATCOPY Kopiert das Muster in die Zielbitmap.

  • PATINVERT Kombiniert Zielbitmap mit Mustern mithilfe des booleschen XOR -Operators (^).

  • DSTINVERT Invertiert die Zielbitmap.

  • BLACKNESS Schaltet alle Ausgabe schwarz um.

  • WHITENESS Schaltet alle Ausgabe weiß um.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Das Muster ist eine Kombination aus dem ausgewählten Pinsel und dem Muster, das sich bereits auf dem Gerät befindet. Der durch dwRop die Definition angegebene Rastervorgangscode definiert, wie die Muster kombiniert werden sollen. Die für diese Funktion aufgeführten Rastervorgänge sind eine begrenzte Teilmenge der vollständigen 256 ternären Rasteroperationscodes; Insbesondere kann ein Rastervorgangscode, der auf eine Quelle verweist, nicht verwendet werden.

Nicht alle Gerätekontexte unterstützen die PatBlt Funktion. Um festzustellen, ob ein Gerätekontext unterstützt PatBltwird, rufen Sie die GetDeviceCaps Memberfunktion mit dem RASTERCAPS Index auf, und überprüfen Sie den Rückgabewert für das RC_BITBLT Flag.

CDC::Pie

Zeichnet einen kreisförmigen Keil, indem ein elliptischer Bogen gezeichnet wird, dessen Mitte und zwei Endpunkte durch Linien verbunden sind.

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);

Parameter

x1
Gibt die X-Koordinate der oberen linken Ecke des umgebenden Rechtecks (in logischen Einheiten) an.

y1
Gibt die y-Koordinate der oberen linken Ecke des umgebenden Rechtecks (in logischen Einheiten) an.

x2
Gibt die x-Koordinate der unteren rechten Ecke des umgebenden Rechtecks (in logischen Einheiten) an.

y2
Gibt die y-Koordinate der unteren rechten Ecke des umgebenden Rechtecks (in logischen Einheiten) an.

x3
Gibt die x-Koordinate des Ausgangspunkts des Bogens (in logischen Einheiten) an. Dieser Punkt muss nicht genau auf dem Bogen liegen.

y3
Gibt die y-Koordinate des Ausgangspunkts des Bogens (in logischen Einheiten) an. Dieser Punkt muss nicht genau auf dem Bogen liegen.

x4
Gibt die x-Koordinate des Endpunkts des Bogens (in logischen Einheiten) an. Dieser Punkt muss nicht genau auf dem Bogen liegen.

y4
Gibt die y-Koordinate des Endpunkts des Bogens (in logischen Einheiten) an. Dieser Punkt muss nicht genau auf dem Bogen liegen.

lpRect
Gibt das umgebende Rechteck an. Sie können entweder ein CRect Objekt oder einen Zeiger an eine RECT Struktur für diesen Parameter übergeben.

ptStart
Gibt den Ausgangspunkt des Bogens an. Dieser Punkt muss nicht genau auf dem Bogen liegen. Sie können entweder eine POINT Struktur oder ein CPoint Objekt für diesen Parameter übergeben.

ptEnd
Gibt den Endpunkt des Bogens an. Dieser Punkt muss nicht genau auf dem Bogen liegen. Sie können entweder eine POINT Struktur oder ein CPoint Objekt für diesen Parameter übergeben.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Die Mitte des Bogens ist die Mitte des umgebenden Rechtecks, das durch x1, y1, x2und y2 (oder durch lpRect) angegeben ist. Die Anfangs- und Endpunkte des Bogens werden durch x3, y3, , x4und y4 (oder durch und ptEnd) ptStart angegeben.

Der Bogen wird mit dem ausgewählten Stift gezeichnet, der sich in gegen den Uhrzeigersinn bewegt. Zwei weitere Linien werden von jedem Endpunkt bis zur Mitte des Bogens gezeichnet. Der kreisförmige Bereich wird mit dem aktuellen Pinsel gefüllt. Wenn gleich und gleich ist, ist das Ergebnis eine Ellipse mit einer einzelnen Linie von der Mitte der Auslassungspunkte bis zum Punkt (x3, y3) oder (x4, y4).y4y3x4x3

Die von dieser Funktion gezeichnete Abbildung erstreckt sich bis zu den rechten und unteren Koordinaten. Dies bedeutet, dass die Höhe der Abbildung und y2 - y1 die Breite der Abbildung ist.x2 - x1 Sowohl die Breite als auch die Höhe des umgebenden Rechtecks müssen größer als 2 Einheiten und weniger als 32.767 Einheiten sein.

Beispiel

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

Gibt den Inhalt der angegebenen Metadatei im Gerätekontext wieder.

BOOL PlayMetaFile(HMETAFILE hMF);

BOOL PlayMetaFile(
    HENHMETAFILE hEnhMetaFile,
    LPCRECT lpBounds);

Parameter

hMF
Identifiziert die metadatei, die wiedergegeben werden soll.

hEnhMetaFile
Identifiziert die erweiterte Metadatei.

lpBounds
Verweist auf eine RECT Struktur oder ein CRect Objekt, das die Koordinaten des umgebenden Rechtecks enthält, das zum Anzeigen des Bilds verwendet wird. Die Koordinaten werden in logischen Einheiten angegeben.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Die Metadatei kann beliebig oft wiedergegeben werden.

Die zweite Version von PlayMetaFile Zeigt das Bild an, das in der angegebenen Metadatei im erweiterten Format gespeichert ist. Wenn eine Anwendung die zweite Version von PlayMetaFileaufruft, verwendet Windows den Bildrahmen im Enhanced-Metafile-Header, um das Bild dem Rechteck zuzuordnen, auf das der lpBounds-Parameter verweist. (Dieses Bild kann durch Festlegen der Welttransformation im Ausgabegerät vor dem Aufrufen PlayMetaFilevon .) Punkte entlang der Ränder des Rechtecks sind im Bild enthalten. Ein erweitertes Metadateibild kann abgeschnitten werden, indem der Clippingbereich auf dem Ausgabegerät definiert wird, bevor die erweiterte Metadatei wiedergegeben wird.

Wenn eine erweiterte Metadatei eine optionale Palette enthält, kann eine Anwendung konsistente Farben erzielen, indem sie eine Farbpalette auf dem Ausgabegerät einrichten, bevor Sie die zweite Version von .PlayMetaFile Verwenden Sie die GetEnhMetaFilePaletteEntries Windows-Funktion, um die optionale Palette abzurufen. Eine erweiterte Metadatei kann in eine neu erstellte erweiterte Metadatei eingebettet werden, indem die zweite Version der PlayMetaFile erweiterten Metadatei der Quelle in den Gerätekontext für die neue erweiterte Metadatei aufgerufen und wiedergegeben wird.

Die Zustände des Ausgabegerätekontexts werden von dieser Funktion beibehalten. Alle objekte, die in der erweiterten Metadatei erstellt, aber nicht gelöscht werden, werden von dieser Funktion gelöscht. Um diese Funktion zu beenden, kann eine Anwendung die CancelDC Windows-Funktion von einem anderen Thread aufrufen, um den Vorgang zu beenden. In diesem Fall gibt die Funktion null zurück.

CDC::PlgBlt

Führt eine Bitblockübertragung der Bits von Farbdaten aus dem angegebenen Rechteck im Quellgerätekontext an das angegebene Parallelogramm im angegebenen Gerätekontext aus.

BOOL PlgBlt(
    LPPOINT lpPoint,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nWidth,
    int nHeight,
    CBitmap& maskBitmap,
    int xMask,
    int yMask);

Parameter

lpPoint
Verweist auf ein Array von drei Punkten im logischen Raum, das drei Ecken des Zielparallelogramms identifiziert. Die obere linke Ecke des Quellrechtecks wird dem ersten Punkt in diesem Array, der oberen rechten Ecke zum zweiten Punkt in diesem Array und der unteren linken Ecke zum dritten Punkt zugeordnet. Die untere rechte Ecke des Quellrechtecks wird dem impliziten vierten Punkt im Parallelogramm zugeordnet.

pSrcDC
Identifiziert den Quellgerätekontext.

xSrc
Gibt die x-Koordinate in logischen Einheiten der oberen linken Ecke des Quellrechtecks an.

ySrc
Gibt die y-Koordinate in logischen Einheiten der oberen linken Ecke des Quellrechtecks an.

nWidth
Gibt die Breite des Quellrechtecks in logischen Einheiten an.

nHeight
Gibt die Höhe des Quellrechtecks in logischen Einheiten an.

maskBitmap
Identifiziert eine optionale monochrome Bitmap, die zum Maskieren der Farben des Quellrechtecks verwendet wird.

xMask
Gibt die x-Koordinate der oberen linken Ecke der monochromen Bitmap an.

yMask
Gibt die y-Koordinate der oberen linken Ecke der monochromen Bitmap an.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Wenn der angegebene Bitmaskenziehpunkt eine gültige monochrome Bitmap identifiziert, verwendet die Funktion diese Bitmap, um die Bits von Farbdaten aus dem Quellrechteck zu maskieren.

Der vierte Scheitelpunkt des Parallelogramms (D) wird durch die Behandlung der ersten drei Punkte (A, B und C) als Vektoren und Berechnen von D = B + C - A definiert.

Wenn die Bitmaske vorhanden ist, gibt der Wert 1 in der Maske an, dass die Quellpixelfarbe an das Ziel kopiert werden soll. Ein Wert von 0 in der Maske gibt an, dass die Zielpixelfarbe nicht geändert werden soll.

Wenn das Maskenrechteck kleiner als die Quell- und Zielrechtecke ist, repliziert die Funktion das Maskenmuster.

Skalierungs-, Übersetzungs- und Spiegelungstransformationen sind im Quellgerätekontext zulässig; Drehungs- und Schertransformationen sind jedoch nicht. Wenn die Maskenbitmap keine monochrome Bitmap ist, tritt ein Fehler auf. Der Dehnungsmodus für den Zielgerätekontext wird verwendet, um zu bestimmen, wie die Pixel gestreckt oder komprimiert werden, falls dies erforderlich ist. Wenn eine erweiterte Metadatei aufgezeichnet wird, tritt ein Fehler auf, wenn der Quellgerätekontext einen Erweitert-Metafile-Gerätekontext identifiziert.

Die Zielkoordinaten werden gemäß dem Zielgerätekontext transformiert. Die Quellkoordinaten werden gemäß dem Quellgerätekontext transformiert. Wenn die Quelltransformation eine Drehung oder Schub hat, wird ein Fehler zurückgegeben. Wenn die Ziel- und Quellrechtecke nicht das gleiche Farbformat aufweisen, PlgBlt wird das Quellrechteck in das Zielrechteck konvertiert. Nicht alle Geräte unterstützen PlgBlt. Weitere Informationen finden Sie in der Beschreibung der RC_BITBLT Rasterfunktion in der CDC::GetDeviceCaps Memberfunktion.

Wenn der Quell- und Zielgerätekontext inkompatible Geräte darstellt, PlgBlt wird ein Fehler zurückgegeben.

CDC::PolyBezier

Zeichnet einen oder mehrere Bzier-Splines.

BOOL PolyBezier(
    const POINT* lpPoints,
    int nCount);

Parameter

lpPoints
Verweist auf ein Array von POINT Datenstrukturen, die die Endpunkte und Kontrollpunkte der Spline(n) enthalten.

nCount
Gibt die Anzahl der Punkte im lpPoints Array an. Dieser Wert muss mindestens drei Mal die Anzahl der zu zeichnenden Splines sein, da jede Bzier-Spline zwei Kontrollpunkte und einen Endpunkt erfordert, und die anfängliche Spline einen anderen Ausgangspunkt erfordert.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Diese Funktion zeichnet kubische Bzier-Splines mithilfe der Endpunkte und Kontrollpunkte, die durch den lpPoints Parameter angegeben werden. Die erste Spline wird von dem ersten Punkt zum vierten Punkt gezeichnet, indem die zweiten und dritten Punkte als Kontrollpunkte verwendet werden. Jede nachfolgende Spline in der Sequenz benötigt genau drei weitere Punkte: Der Endpunkt der vorherigen Spline wird als Ausgangspunkt verwendet, die nächsten beiden Punkte in der Sequenz sind Kontrollpunkte und der dritte ist der Endpunkt.

Die aktuelle Position wird von der PolyBezier Funktion nicht verwendet oder aktualisiert. Die Abbildung ist nicht ausgefüllt. Diese Funktion zeichnet Linien mithilfe des aktuellen Stifts.

CDC::PolyBezierTo

Zeichnet einen oder mehrere Bzier-Splines.

BOOL PolyBezierTo(
    const POINT* lpPoints,
    int nCount);

Parameter

lpPoints
Verweist auf ein Array von POINT Datenstrukturen, die die Endpunkte und Kontrollpunkte enthalten.

nCount
Gibt die Anzahl der Punkte im lpPoints Array an. Dieser Wert muss dreimal die Anzahl der zu zeichnenden Splines sein, da für jede Bzier-Spline zwei Kontrollpunkte und ein Endpunkt erforderlich sind.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Diese Funktion zeichnet kubische Bzier splines mithilfe der durch den lpPoints Parameter angegebenen Kontrollpunkte. Die erste Spline wird von der aktuellen Position bis zum dritten Punkt gezeichnet, indem die ersten beiden Punkte als Kontrollpunkte verwendet werden. Für jede nachfolgende Spline benötigt die Funktion genau drei weitere Punkte und verwendet den Endpunkt der vorherigen Spline als Ausgangspunkt für die nächste. PolyBezierTo verschiebt die aktuelle Position an den Endpunkt der letzten Bzier-Spline. Die Abbildung ist nicht ausgefüllt. Diese Funktion zeichnet Linien mithilfe des aktuellen Stifts.

Beispiel

Sehen Sie sich das Beispiel für CDC::BeginPath.

CDC::PolyDraw

Zeichnet eine Reihe von Liniensegmenten und Bzier-Splines.

BOOL PolyDraw(
    const POINT* lpPoints,
    const BYTE* lpTypes,
    int nCount);

Parameter

lpPoints
Verweist auf ein Array von POINT Datenstrukturen, die die Endpunkte für jedes Liniensegment und die Endpunkte und Kontrollpunkte für jede Bzier-Spline enthalten.

lpTypes
Verweist auf ein Array, das angibt, wie jeder Punkt im lpPoints Array verwendet wird. Werte können eine der folgenden Werte sein:

  • PT_MOVETO Gibt an, dass dieser Punkt eine nicht zusammenhängende Abbildung beginnt. Dieser Punkt wird zur neuen aktuellen Position.

  • PT_LINETO Gibt an, dass eine Linie von der aktuellen Position bis zu diesem Punkt gezeichnet werden soll, was dann zur neuen aktuellen Position wird.

  • PT_BEZIERTO Gibt an, dass dieser Punkt ein Kontrollpunkt oder Endpunkt für eine Bzier-Spline ist.

PT_BEZIERTO Typen treten immer in Gruppen von drei auf. Die aktuelle Position definiert den Ausgangspunkt für die Bzier-Spline. Die ersten beiden PT_BEZIERTO Punkte sind die Kontrollpunkte, und der dritte PT_BEZIERTO Punkt ist der Endpunkt. Der Endpunkt wird zur neuen aktuellen Position. Wenn keine drei aufeinander folgenden PT_BEZIERTO Punkte vorhanden sind, ergibt sich ein Fehler.

Ein PT_LINETO oder PT_BEZIERTO ein Typ kann mit der folgenden Konstante kombiniert werden, indem der bitweise Operator ODER verwendet wird, um anzugeben, dass der entsprechende Punkt der letzte Punkt in einer Abbildung ist und die Abbildung geschlossen wird:

  • PT_CLOSEFIGUREGibt an, dass die Abbildung nach Abschluss des Punkts oder PT_BEZIERTO Typs PT_LINETO automatisch geschlossen wird. Eine Linie wird von diesem Punkt auf den neuesten PT_MOVETO oder MoveTo punkt gezeichnet.

    Dieses Kennzeichen wird mit dem PT_LINETO Typ für eine Linie oder mit dem PT_BEZIERTO Typ des Endpunkts für eine Bzier-Spline mithilfe des bitweisen OR-Operators kombiniert. Die aktuelle Position wird auf den Endpunkt der schließenden Linie festgelegt.

nCount
Gibt die Gesamtanzahl der Punkte im lpPoints Array an, die mit der Anzahl der Bytes im lpTypes Array identisch ist.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Diese Funktion kann verwendet werden, um nicht zusammenhängende Zahlen anstelle aufeinander folgender Aufrufe von , CDC::LineTound CDC::PolyBezierTo Memberfunktionen zu CDC::MoveTozeichnen. Die Linien und Splines werden mit dem aktuellen Stift gezeichnet, und Zahlen werden nicht ausgefüllt. Wenn ein aktiver Pfad durch Aufrufen der CDC::BeginPath Memberfunktion gestartet wird, PolyDraw wird der Pfad hinzugefügt. Die im lpPoints Array enthaltenen Punkte und lpTypes geben an, ob jeder Punkt Teil eines , a CDC::MoveToCDC::LineTooder eines CDC::BezierTo Vorgangs ist. Es ist auch möglich, Zahlen zu schließen. Diese Funktion aktualisiert die aktuelle Position.

Beispiel

Sehen Sie sich das Beispiel für CDC::BeginPath.

CDC::Polygon

Zeichnet ein Polygon, das aus zwei oder mehr Punkten (Scheitelpunkten) besteht, die mit Linien verbunden sind, mithilfe des aktuellen Stifts.

BOOL Polygon(
    LPPOINT lpPoints,
    int nCount);

Parameter

lpPoints
Verweist auf ein Array von Punkten, das die Scheitelpunkte des Polygons angibt. Jeder Punkt im Array ist eine POINT Struktur oder ein CPoint Objekt.

nCount
Gibt die Anzahl der Scheitelpunkte im Array an.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Das System schließt das Polygon bei Bedarf automatisch, indem eine Linie vom letzten Scheitelpunkt zum ersten gezeichnet wird.

Der aktuelle Polygonfüllmodus kann mithilfe der GetPolyFillMode Funktionen und SetPolyFillMode Member abgerufen oder festgelegt werden.

Beispiel

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

Zeichnet eine Reihe von Liniensegmenten, die die durch lpPoints.

BOOL Polyline(
    LPPOINT lpPoints,
    int nCount);

Parameter

lpPoints
Verweist auf ein Array von POINT Strukturen oder CPoint Objekten, die verbunden werden sollen.

nCount`
Gibt die Anzahl der Punkte im Array an. Dieser Wert muss mindestens 2 sein.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Die Linien werden mit dem aktuellen Stift vom ersten Punkt bis zu nachfolgenden Punkten gezeichnet. Im Gegensatz zur LineTo Memberfunktion verwendet oder aktualisiert die Polyline Funktion die aktuelle Position nicht.

Weitere Informationen finden Sie im PolyLine Windows SDK.

CDC::PolylineTo

Zeichnet eine oder mehrere gerade Linien.

BOOL PolylineTo(
    const POINT* lpPoints,
    int nCount);

Parameter

lpPoints
Verweist auf ein Array von POINT Datenstrukturen, die die Scheitelpunkte der Linie enthalten.

nCount
Gibt die Anzahl der Punkte im Array an.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Eine Linie wird von der aktuellen Position bis zum ersten punkt gezeichnet, der durch den lpPoints Parameter mithilfe des aktuellen Stifts angegeben wird. Für jede zusätzliche Zeile zeichnet die Funktion vom Endpunkt der vorherigen Zeile bis zum nächsten durch .lpPoints PolylineTo verschiebt die aktuelle Position an den Endpunkt der letzten Zeile. Wenn die von dieser Funktion gezeichneten Liniensegmente eine geschlossene Abbildung bilden, wird die Abbildung nicht ausgefüllt.

CDC::PolyPolygon

Erstellt zwei oder mehr Polygone, die mit dem aktuellen Polygonfüllmodus gefüllt sind.

BOOL PolyPolygon(
    LPPOINT lpPoints,
    LPINT lpPolyCounts,
    int nCount);

Parameter

lpPoints
Verweist auf ein Array von POINT Strukturen oder CPoint Objekten, die die Scheitelpunkte der Polygone definieren.

lpPolyCounts
Verweist auf ein Array ganzzahliger Zahlen, von denen jede die Anzahl der Punkte in einem der Polygone im lpPoints Array angibt.

nCount
Die Anzahl der Einträge im lpPolyCounts Array. Diese Zahl gibt die Anzahl der zu zeichnenden Polygone an. Dieser Wert muss mindestens 2 sein.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Die Polygone können nicht zusammenhängend oder überlappend sein.

Jedes polygon, das in einem Aufruf der PolyPolygon Funktion angegeben ist, muss geschlossen werden. Im Gegensatz zu Polygonen, die von der Polygon Memberfunktion erstellt wurden, werden die von PolyPolygon ihnen erstellten Polygone nicht automatisch geschlossen.

Die Funktion erstellt zwei oder mehr Polygone. Um ein einzelnes Polygon zu erstellen, sollte eine Anwendung die Polygon Memberfunktion verwenden.

Der aktuelle Polygonfüllmodus kann mithilfe der GetPolyFillMode Funktionen und SetPolyFillMode Member abgerufen oder festgelegt werden.

CDC::PolyPolyline

Zeichnet mehrere Reihen verbundener Liniensegmente.

BOOL PolyPolyline(
    const POINT* lpPoints,
    const DWORD* lpPolyPoints,
    int nCount);

Parameter

lpPoints
Verweist auf ein Array von Strukturen, die die Scheitelpunkte der Polylinien enthalten. Die Polylinien werden aufeinander folgenden angegeben.

lpPolyPoints
Verweist auf ein Array von Variablen, die die Anzahl der Punkte im lpPoints Array für das entsprechende Polygon angeben. Jeder Eintrag muss größer oder gleich 2 sein.

nCount
Gibt die Gesamtzahl der Zählungen im lpPolyPoints Array an.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Die Liniensegmente werden mithilfe des aktuellen Stifts gezeichnet. Die Zahlen, die sich aus den Segmenten bilden, werden nicht ausgefüllt. Die aktuelle Position wird von dieser Funktion nicht verwendet oder aktualisiert.

CDC::PtVisible

Bestimmt, ob sich der angegebene Punkt innerhalb des Clippingbereichs des Gerätekontexts befindet.

virtual BOOL PtVisible(
    int x,
    int y) const;

BOOL PtVisible(POINT point) const;

Parameter

x
Gibt die logische x-Koordinate des Punkts an.

y
Gibt die logische y-Koordinate des Punkts an.

point
Gibt den Punkt an, der in logische Koordinaten eingecheckt werden soll. Sie können entweder eine POINT Struktur oder ein CPoint Objekt für diesen Parameter übergeben.

Rückgabewert

Nonzero, wenn sich der angegebene Punkt innerhalb des Beschneidungsbereichs befindet; andernfalls 0.

CDC::QueryAbort

Ruft die von der SetAbortProc Memberfunktion installierte Abbruchfunktion für eine Druckanwendung auf und fragt ab, ob der Druck beendet werden soll.

BOOL QueryAbort() const;

Rückgabewert

Der Rückgabewert ist nicht null, wenn der Druck fortgesetzt werden soll oder wenn keine Abbruchprozedur vorhanden ist. Es ist 0, wenn der Druckauftrag beendet werden soll. Der Rückgabewert wird von der Abbruchfunktion bereitgestellt.

CDC::RealizePalette

Karten Einträge aus der aktuellen logischen Palette in die Systempalette ein.

UINT RealizePalette();

Rückgabewert

Gibt an, wie viele Einträge in der logischen Palette verschiedenen Einträgen in der Systempalette zugeordnet wurden. Dies stellt die Anzahl der Einträge dar, die diese Funktion neu zugeordnet hat, um Änderungen in der Systempalette zu berücksichtigen, seit die logische Palette zuletzt realisiert wurde.

Hinweise

Eine logische Farbpalette fungiert als Puffer zwischen farbintensiven Anwendungen und dem System, sodass eine Anwendung so viele Farben wie nötig verwenden kann, ohne ihre eigenen angezeigten Farben oder farben, die von anderen Fenstern angezeigt werden, zu beeinträchtigen.

Wenn ein Fenster den Eingabefokus und Aufrufe RealizePalettehat, stellt Windows sicher, dass das Fenster alle angeforderten Farben anzeigt, bis zur maximalen Anzahl, die gleichzeitig auf dem Bildschirm verfügbar ist. Windows zeigt auch Farben an, die in der Palette des Fensters nicht gefunden wurden, indem sie mit verfügbaren Farben übereinstimmen.

Darüber hinaus stimmt Windows mit den farben überein, die von inaktiven Fenstern angefordert werden, die die Funktion so genau wie möglich mit den verfügbaren Farben aufrufen. Dadurch werden unerwünschte Änderungen in den inaktiven Fenstern angezeigten Farben erheblich reduziert.

CDC::Rectangle

Zeichnet ein Rechteck mit dem aktuellen Stift.

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

BOOL Rectangle(LPCRECT lpRect);

Parameter

x1
Gibt die x-Koordinate der oberen linken Ecke des Rechtecks (in logischen Einheiten) an.

y1
Gibt die y-Koordinate der oberen linken Ecke des Rechtecks (in logischen Einheiten) an.

x2
Gibt die x-Koordinate der unteren rechten Ecke des Rechtecks (in logischen Einheiten) an.

y2
Gibt die y-Koordinate der unteren rechten Ecke des Rechtecks (in logischen Einheiten) an.

lpRect
Gibt das Rechteck in logischen Einheiten an. Sie können entweder ein CRect Objekt oder einen Zeiger an eine RECT Struktur für diesen Parameter übergeben.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Das Innere des Rechtecks wird mit dem aktuellen Pinsel gefüllt.

Das Rechteck erstreckt sich bis zu den rechten und unteren Koordinaten, enthält aber nicht. Dies bedeutet, dass die Höhe des Rechtecks und y2 - y1 die Breite des Rechtecks lautet.x2 - x1 Sowohl die Breite als auch die Höhe eines Rechtecks müssen größer als 2 Einheiten und weniger als 32.767 Einheiten sein.

Beispiel

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

Bestimmt, ob ein Teil des angegebenen Rechtecks innerhalb des Beschneidungsbereichs des Anzeigekontexts liegt.

virtual BOOL RectVisible(LPCRECT lpRect) const;

Parameter

lpRect
Verweist auf eine RECT Struktur oder ein CRect Objekt, das die logischen Koordinaten des angegebenen Rechtecks enthält.

Rückgabewert

Nonzero, wenn ein Teil des angegebenen Rechtecks innerhalb des Beschneidungsbereichs liegt; andernfalls 0.

CDC::ReleaseAttribDC

Rufen Sie diese Memberfunktion auf, um auf NULL festzulegen m_hAttribDC .

virtual void ReleaseAttribDC();

Hinweise

Dies führt nicht zu einem Detach Auftreten. Nur der Ausgabegerätekontext ist an das CDC Objekt angefügt und kann nur getrennt werden.

CDC::ReleaseOutputDC

Rufen Sie diese Memberfunktion auf, um das m_hDC Element auf .NULL

virtual void ReleaseOutputDC();

Hinweise

Diese Memberfunktion kann nicht aufgerufen werden, wenn der Ausgabegerätekontext an das CDC Objekt angefügt ist. Verwenden Sie die Detach Memberfunktion, um den Ausgabegerätekontext zu trennen.

CDC::ResetDC

Rufen Sie diese Memberfunktion auf, um den vom CDC Objekt umschlossenen Gerätekontext zu aktualisieren.

BOOL ResetDC(const DEVMODE* lpDevMode);

Parameter

lpDevMode
Ein Zeiger auf eine Windows-Struktur DEVMODE .

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Der Gerätekontext wird aus den in der Windows-Struktur DEVMODE angegebenen Informationen aktualisiert. Diese Memberfunktion setzt nur den Attributgerätekontext zurück.

Eine Anwendung verwendet in der Regel die ResetDC Memberfunktion, wenn ein Fenster eine WM_DEVMODECHANGE Nachricht verarbeitet. Sie können diese Memberfunktion auch verwenden, um die Papierausrichtung oder Papierkörbe beim Drucken eines Dokuments zu ändern.

Sie können diese Memberfunktion nicht verwenden, um den Treibernamen, den Gerätenamen oder den Ausgabeport zu ändern. Wenn der Benutzer die Portverbindung oder den Gerätenamen ändert, müssen Sie den ursprünglichen Gerätekontext löschen und einen neuen Gerätekontext mit den neuen Informationen erstellen.

Bevor Sie diese Memberfunktion aufrufen, müssen Sie sicherstellen, dass alle Objekte (außer Bestandsobjekten), die im Gerätekontext ausgewählt wurden, ausgewählt wurden.

CDC::RestoreDC

Stellt den Gerätekontext auf den vorherigen Zustand zurück, der durch nSavedDC.

virtual BOOL RestoreDC(int nSavedDC);

Parameter

nSavedDC
Gibt den Gerätekontext an, der wiederhergestellt werden soll. Es kann ein Wert sein, der von einem vorherigen SaveDC Funktionsaufruf zurückgegeben wird. Wenn nSavedDC -1 ist, wird der zuletzt gespeicherte Gerätekontext wiederhergestellt.

Rückgabewert

Nonzero, wenn der angegebene Kontext wiederhergestellt wurde; andernfalls 0.

Hinweise

RestoreDC stellt den Gerätekontext wieder her, indem Zustandsinformationen von einem Stapel, der von früheren Aufrufen der SaveDC Memberfunktion erstellt wurde, wieder aufhingen.

Der Stapel kann die Statusinformationen für mehrere Gerätekontexte enthalten. Wenn sich der durch nSavedDC den angegebenen Kontext nicht oben im Stapel befindet, RestoreDC werden alle Zustandsinformationen zwischen dem durch nSavedDC den Gerätekontext angegebenen und dem oberen Rand des Stapels gelöscht. Die gelöschten Informationen sind verloren gegangen.

CDC::RoundRect

Zeichnet ein Rechteck mit abgerundeten Ecken mit dem aktuellen Stift.

BOOL RoundRect(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3);

BOOL RoundRect(
    LPCRECT lpRect,
    POINT point);

Parameter

x1
Gibt die x-Koordinate der oberen linken Ecke des Rechtecks (in logischen Einheiten) an.

y1
Gibt die y-Koordinate der oberen linken Ecke des Rechtecks (in logischen Einheiten) an.

x2
Gibt die x-Koordinate der unteren rechten Ecke des Rechtecks (in logischen Einheiten) an.

y2
Gibt die y-Koordinate der unteren rechten Ecke des Rechtecks (in logischen Einheiten) an.

x3
Gibt die Breite der Ellipse an, die zum Zeichnen der abgerundeten Ecken (in logischen Einheiten) verwendet werden.

y3
Gibt die Höhe der Ellipse an, mit der die abgerundeten Ecken (in logischen Einheiten) gezeichnet werden.

lpRect
Gibt das umgebende Rechteck in logischen Einheiten an. Sie können entweder ein CRect Objekt oder einen Zeiger an eine RECT Struktur für diesen Parameter übergeben.

point
Die x-Koordinate von point Specifies the width of the ellipse to draw the rounded corners (in logical units). Die Y-Koordinate gibt point die Höhe der Auslassungspunkte an, um die abgerundeten Ecken (in logischen Einheiten) zu zeichnen. Sie können entweder eine POINT Struktur oder ein CPoint Objekt für diesen Parameter übergeben.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Das Innere des Rechtecks wird mit dem aktuellen Pinsel gefüllt.

Die Abbildung, die diese Funktion zeichnet, erstreckt sich bis zu den rechten und unteren Koordinaten. Dies bedeutet, dass die Höhe der Abbildung und y2 - y1 die Breite der Abbildung ist.x2 - x1 Sowohl die Höhe als auch die Breite des umgebenden Rechtecks müssen größer als 2 Einheiten und weniger als 32.767 Einheiten sein.

Beispiel

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

Speichert den aktuellen Zustand des Gerätekontexts, indem Zustandsinformationen (z. B. Clippingbereich, ausgewählte Objekte und Zuordnungsmodus) in einen Kontextstapel kopiert werden, Standard von Windows enthalten sind.

virtual int SaveDC();

Rückgabewert

Eine ganze Zahl, die den gespeicherten Gerätekontext identifiziert. Dies ist 0, wenn ein Fehler auftritt. Dieser Rückgabewert kann verwendet werden, um den Gerätekontext durch Aufrufen RestoreDCwiederherzustellen.

Hinweise

Der gespeicherte Gerätekontext kann später mithilfe von RestoreDC.

SaveDC kann beliebig oft verwendet werden, um eine beliebige Anzahl von Gerätekontextzuständen zu speichern.

CDC::ScaleViewportExt

Ändert die Viewport-Ausmaße relativ zu den aktuellen Werten.

virtual CSize ScaleViewportExt(
    int xNum,
    int xDenom,
    int yNum,
    int yDenom);

Parameter

xNum
Gibt den Betrag an, mit dem das aktuelle x-Ausmaß multipliziert werden soll.

xDenom
Gibt den Betrag an, um den das Ergebnis der Multiplikation des aktuellen X-Bereichs durch den Wert des xNum Parameters dividiert werden soll.

yNum
Gibt den Betrag an, mit dem das aktuelle Y-Ausmaß multipliziert werden soll.

yDenom
Gibt den Betrag an, um den das Ergebnis der Multiplikation des aktuellen y-Bereichs durch den Wert des yNum Parameters dividiert werden soll.

Rückgabewert

Die vorherigen Viewport-Erweiterungen (in Geräteeinheiten) als CSize Objekt.

Hinweise

Die Formeln werden wie folgt geschrieben:

xNewVE = ( xOldVE * xNum ) / xDenom

yNewVE = ( yOldVE * yNum ) / yDenom

Die neuen Viewport-Ausmaße werden berechnet, indem die aktuellen Ausmaße mit dem angegebenen Zähler multipliziert und dann durch den angegebenen Nenner dividiert werden.

CDC::ScaleWindowExt

Ändert die Fensterausdehnung relativ zu den aktuellen Werten.

virtual CSize ScaleWindowExt(
    int xNum,
    int xDenom,
    int yNum,
    int yDenom);

Parameter

xNum
Gibt den Betrag an, mit dem das aktuelle x-Ausmaß multipliziert werden soll.

xDenom
Gibt den Betrag an, um den das Ergebnis der Multiplikation des aktuellen X-Bereichs durch den Wert des xNum Parameters dividiert werden soll.

yNum
Gibt den Betrag an, mit dem das aktuelle Y-Ausmaß multipliziert werden soll.

yDenom
Gibt den Betrag an, um den das Ergebnis der Multiplikation des aktuellen y-Bereichs durch den Wert des yNum Parameters dividiert werden soll.

Rückgabewert

Die vorherigen Fensterausdehnungen (in logischen Einheiten) als CSize Objekt.

Hinweise

Die Formeln werden wie folgt geschrieben:

xNewWE = ( xOldWE * xNum ) / xDenom

yNewWE = ( yOldWE * yNum ) / yDenom

Die neuen Fensterausdehnungen werden berechnet, indem die aktuellen Ausmaße mit dem angegebenen Zähler multipliziert und dann durch den angegebenen Nenner dividiert werden.

CDC::ScrollDC

Scrollt ein Rechteck von Bits horizontal und vertikal.

BOOL ScrollDC(
    int dx,
    int dy,
    LPCRECT lpRectScroll,
    LPCRECT lpRectClip,
    CRgn* pRgnUpdate,
    LPRECT lpRectUpdate);

Parameter

dx
Gibt die Anzahl der horizontalen Bildlaufeinheiten an.

dy
Gibt die Anzahl der vertikalen Bildlaufeinheiten an.

lpRectScroll
Verweist auf die Struktur oder CRect das RECT Objekt, die die Koordinaten des Bildlaufrechtecks enthält.

lpRectClip
Verweist auf die Struktur oder CRect das RECT Objekt, die die Koordinaten des Beschneidungsrechtecks enthält. Wenn dieses Rechteck kleiner als das ursprüngliche Rechteck ist, auf das lpRectScrollverwiesen wird, erfolgt das Scrollen nur im kleineren Rechteck.

pRgnUpdate
Identifiziert den durch den Bildlaufvorgang aufgedeckten Bereich. Die ScrollDC Funktion definiert diesen Bereich. Es handelt sich nicht unbedingt um ein Rechteck.

lpRectUpdate
Verweist auf die Struktur oder CRect das RECT Objekt, die die Koordinaten des Rechtecks empfängt, das den Bildlaufaktualisierungsbereich begrenzt. Dies ist der größte rechteckige Bereich, der eine Aktualisierung erfordert. Die Werte in der Struktur oder des Objekts, wenn die Funktion zurückgegeben wird, befinden sich unabhängig vom Zuordnungsmodus für den angegebenen Gerätekontext in Clientkoordinaten.

Rückgabewert

Nonzero, wenn bildlauf ausgeführt wird; andernfalls 0.

Hinweise

Wenn lpRectUpdate ja NULL, berechnet Windows das Updaterechteck nicht. Wenn beides pRgnUpdate istNULL, lpRectUpdate berechnet Windows die Updateregion nicht. Wenn pRgnUpdate nicht NULL, geht Windows davon aus, dass er einen gültigen Zeiger auf den Bereich enthält, der durch den Bildlaufprozess (definiert durch die ScrollDC Memberfunktion) aufgedeckt wird. Der zurückgegebene lpRectUpdate Updatebereich kann bei Bedarf an CWnd::InvalidateRgn diese übergeben werden.

Eine Anwendung sollte die ScrollWindow Memberfunktion der Klasse CWnd verwenden, wenn ein Bildlauf zum gesamten Clientbereich eines Fensters erforderlich ist. Andernfalls sollte sie verwendet ScrollDCwerden.

CDC::SelectClipPath

Wählt den aktuellen Pfad als Clippingbereich für den Gerätekontext aus und kombiniert den neuen Bereich mit einem vorhandenen Clippingbereich mithilfe des angegebenen Modus.

BOOL SelectClipPath(int nMode);

Parameter

nMode
Gibt die Methode zum Verwenden des Pfads an. Folgende Werte sind zulässig:

  • RGN_AND Der neue Clippingbereich enthält die Schnittmenge (überlappende Bereiche) des aktuellen Clippingbereichs und den aktuellen Pfad.

  • RGN_COPY Der neue Clippingbereich ist der aktuelle Pfad.

  • RGN_DIFF Der neue Clippingbereich enthält die Bereiche des aktuellen Clippingbereichs, und die Bereiche des aktuellen Pfads werden ausgeschlossen.

  • RGN_OR Der neue Clippingbereich enthält die Vereinigung (kombinierte Bereiche) des aktuellen Clippingbereichs und den aktuellen Pfad.

  • RGN_XOR Der neue Clippingbereich enthält die Vereinigung des aktuellen Clippingbereichs und des aktuellen Pfads, jedoch ohne überlappende Bereiche.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Der identifizierte Gerätekontext muss einen geschlossenen Pfad enthalten.

CDC::SelectClipRgn

Wählt den angegebenen Bereich als aktuellen Clippingbereich für den Gerätekontext aus.

int SelectClipRgn(CRgn* pRgn);

int SelectClipRgn(
    CRgn* pRgn,
    int nMode);

Parameter

pRgn
Identifiziert den bereich, der ausgewählt werden soll.

  • Bei der ersten Version dieser Funktion wird NULLbei diesem Wert der gesamte Clientbereich ausgewählt und die Ausgabe wird weiterhin in das Fenster abgeschnitten.

  • Für die zweite Version dieser Funktion kann dieses Handle nur verwendet werden NULL , wenn der RGN_COPY Modus angegeben wird.

nMode
Gibt den auszuführenden Vorgang an. Es muss sich um einen der folgenden Werte handeln:

  • RGN_AND Der neue Beschneidungsbereich kombiniert die überlappenden Bereiche des aktuellen Beschneidungsbereichs und den durch pRgn.

  • RGN_COPY Der neue Beschneidungsbereich ist eine Kopie der region, die durch pRgn. Dies ist identisch mit der ersten Version von SelectClipRgn. Wenn der durch pRgn diese Region identifizierte NULLBereich ist, wird der neue Beschneidungsbereich zum Standardmäßigen Clippingbereich (ein Nullbereich).

  • RGN_DIFF Der neue Beschneidungsbereich kombiniert die Bereiche des aktuellen Beschneidungsbereichs mit den bereichen, die von der region ausgeschlossen sind, die durch pRgn.

  • RGN_OR Der neue Beschneidungsbereich kombiniert den aktuellen Beschneidungsbereich und den durch pRgn.

  • RGN_XOR Der neue Beschneidungsbereich kombiniert den aktuellen Beschneidungsbereich und den durch pRgn diese identifizierten Bereich, schließt jedoch überlappende Bereiche aus.

Rückgabewert

Der Typ des Bereichs. Dabei kann es sich um einen der folgenden Werte handeln:

  • COMPLEXREGION Der neue Clippingbereich hat überlappende Rahmen.

  • ERROR Der Gerätekontext oder die Region ist ungültig.

  • NULLREGION Der neue Beschneidungsbereich ist leer.

  • SIMPLEREGION Der neue Beschneidungsbereich weist keine überlappenden Rahmen auf.

Hinweise

Es wird nur eine Kopie des ausgewählten Bereichs verwendet. Der Bereich selbst kann für eine beliebige Anzahl anderer Gerätekontexte ausgewählt oder gelöscht werden.

Die Funktion geht davon aus, dass die Koordinaten für den angegebenen Bereich in Geräteeinheiten angegeben werden. Einige Druckergeräte unterstützen die Textausgabe mit einer höheren Auflösung als die Grafikausgabe, um die Genauigkeit beizubehalten, die zum Ausdrücken von Textmetriken erforderlich ist. Diese Geräte melden Geräteeinheiten mit der höheren Auflösung, d. h. in Texteinheiten. Diese Geräte skalieren dann Koordinaten für Grafiken, sodass mehrere gemeldete Geräteeinheiten nur einer Grafikeinheit zugeordnet sind. Sie sollten die SelectClipRgn Funktion immer mithilfe von Texteinheiten aufrufen.

Anwendungen, die die Skalierung von Grafikobjekten in der GDI übernehmen müssen, können den GETSCALINGFACTOR Drucker escape verwenden, um den Skalierungsfaktor zu bestimmen. Dieser Skalierungsfaktor wirkt sich auf das Ausschneiden aus. Wenn ein Bereich zum Abschneiden von Grafiken verwendet wird, dividiert GDI die Koordinaten durch den Skalierungsfaktor. Wenn der Bereich zum Ausschneiden von Text verwendet wird, nimmt GDI keine Skalierungsanpassung vor. Ein Skalierungsfaktor von 1 bewirkt, dass die Koordinaten durch 2 dividiert werden; Ein Skalierungsfaktor von 2 bewirkt, dass die Koordinaten durch 4 dividiert werden; Und so weiter.

CDC::SelectObject

Wählt ein Objekt im Gerätekontext aus.

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);

Parameter

pPen
Ein Zeiger auf ein CPen objekt, das ausgewählt werden soll.

pBrush
Ein Zeiger auf ein CBrush objekt, das ausgewählt werden soll.

pFont
Ein Zeiger auf ein CFont objekt, das ausgewählt werden soll.

pBitmap
Ein Zeiger auf ein CBitmap objekt, das ausgewählt werden soll.

pRgn
Ein Zeiger auf ein CRgn objekt, das ausgewählt werden soll.

pObject
Ein Zeiger auf ein CGdiObject objekt, das ausgewählt werden soll.

Rückgabewert

Ein Zeiger auf das objekt, das ersetzt wird. Dies ist ein Zeiger auf ein Objekt einer der klassen, die von CGdiObject, z CPen. B. , je nachdem, von welcher Version der Funktion verwendet wird. Der Rückgabewert ist NULL , wenn ein Fehler auftritt. Diese Funktion gibt möglicherweise einen Zeiger auf ein temporäres Objekt zurück. Dieses temporäre Objekt ist nur während der Verarbeitung einer Windows-Nachricht gültig. Weitere Informationen finden Sie unter CGdiObject::FromHandle.

Die Version der Memberfunktion, die einen Bereichsparameter verwendet, führt dieselbe Aufgabe wie die SelectClipRgn Memberfunktion aus. Der Rückgabewert kann eine der folgenden Sein:

  • COMPLEXREGION Der neue Clippingbereich hat überlappende Rahmen.

  • ERROR Der Gerätekontext oder die Region ist ungültig.

  • NULLREGION Der neue Beschneidungsbereich ist leer.

  • SIMPLEREGION Der neue Beschneidungsbereich weist keine überlappenden Rahmen auf.

Hinweise

Klasse CDC bietet fünf Versionen, die auf bestimmte Arten von GDI-Objekten spezialisiert sind, einschließlich Stiften, Pinsel, Schriftarten, Bitmaps und Regionen. Das neu ausgewählte Objekt ersetzt das vorherige Objekt desselben Typs. Wenn beispielsweise pObject die allgemeine Version von SelectObject Punkten auf ein CPen Objekt verweist, ersetzt die Funktion den aktuellen Stift durch den durch pObject.

Eine Anwendung kann eine Bitmap nur in Speichergerätekontexten und jeweils nur in einem Speichergerätekontext auswählen. Das Format der Bitmap muss monochrom oder mit dem Gerätekontext kompatibel sein. Wenn dies nicht der Fehler ist, SelectObject wird ein Fehler zurückgegeben.

Für Windows 3.1 und höher gibt die SelectObject Funktion denselben Wert zurück, unabhängig davon, ob sie in einer Metadatei verwendet wird oder nicht. Unter früheren Versionen von Windows wurde ein Nichtzero-Wert für Erfolg und 0 für Fehler zurückgegeben, SelectObject wenn er in einer Metadatei verwendet wurde.

CDC::SelectPalette

Wählt die logische Palette aus, die als ausgewähltes Palettenobjekt des Gerätekontexts angegeben pPalette wird.

CPalette* SelectPalette(
    CPalette* pPalette,
    BOOL bForceBackground);

Parameter

pPalette
Identifiziert die logische Palette, die ausgewählt werden soll. Diese Palette muss bereits mit der CPalette Memberfunktion CreatePaletteerstellt worden sein.

bForceBackground
Gibt an, ob die logische Palette gezwungen ist, eine Hintergrundpalette zu sein. Ist bForceBackground "nonzero" festgelegt, ist die ausgewählte Palette immer eine Hintergrundpalette, unabhängig davon, ob das Fenster den Eingabefokus hat. Wenn bForceBackground 0 und der Gerätekontext an ein Fenster angefügt ist, ist die logische Palette eine Vordergrundpalette, wenn das Fenster den Eingabefokus hat.

Rückgabewert

Ein Zeiger auf ein CPalette Objekt, das die logische Palette identifiziert, die durch die durch pPalettedie angegebene Palette ersetzt wird. NULL Wenn ein Fehler auftritt.

Hinweise

Die neue Palette wird zum Palettenobjekt, das von GDI zum Steuern von Farben verwendet wird, die im Gerätekontext angezeigt werden, und ersetzt die vorherige Palette.

Eine Anwendung kann eine logische Palette in mehr als einen Gerätekontext auswählen. Änderungen an einer logischen Palette wirken sich jedoch auf alle Gerätekontexte aus, für die sie ausgewählt ist. Wenn eine Anwendung eine Palette in mehr als einen Gerätekontext auswählt, müssen die Gerätekontexte alle zum gleichen physischen Gerät gehören.

CDC::SelectStockObject

Wählt ein CGdiObject Objekt aus, das einem der vordefinierten Stockstifte, Pinsel oder Schriftarten entspricht.

virtual CGdiObject* SelectStockObject(int nIndex);

Parameter

nIndex
Gibt die Art des gewünschten Bestandsobjekts an. Es kann sich um einen der folgenden Werte handeln:

  • BLACK_BRUSH Schwarzer Pinsel.

  • DKGRAY_BRUSH Dunkelgrauer Pinsel.

  • GRAY_BRUSH Grauer Pinsel.

  • HOLLOW_BRUSH Hohler Pinsel.

  • LTGRAY_BRUSH Hellgrauer Pinsel.

  • NULL_BRUSH Nullpinsel.

  • WHITE_BRUSH Weißer Pinsel.

  • BLACK_PEN Schwarzer Stift.

  • NULL_PEN NULL-Stift.

  • WHITE_PEN Weißer Stift.

  • ANSI_FIXED_FONT ANSI-Systemschriftart mit fester Systemschriftart.

  • ANSI_VAR_FONT SCHRIFTART des ANSI-Variablensystems.

  • DEVICE_DEFAULT_FONT Geräteabhängige Schriftart.

  • OEM_FIXED_FONT OEM-abhängige feste Schriftart.

  • SYSTEM_FONT Die Systemschriftart. Standardmäßig verwendet Windows die Systemschriftart, um Menüs, Dialogfeld-Steuerelemente und anderen Text zu zeichnen. Es ist jedoch am besten, sich nicht auf SYSTEM_FONT die Schriftart zu verlassen, die von Dialogfeldern und Fenstern verwendet wird. Verwenden Sie stattdessen die SystemParametersInfo Funktion mit dem SPI_GETNONCLIENTMETRICS Parameter, um die aktuelle Schriftart abzurufen. SystemParametersInfoberücksichtigt das aktuelle Design und stellt Schriftartinformationen für Untertitel, Menüs und Meldungsdialogfeld bereit.

  • SYSTEM_FIXED_FONT Die Systemschriftart mit fester Breite, die in Windows vor Version 3.0 verwendet wird. Dieses Objekt steht zur Kompatibilität mit früheren Versionen von Windows zur Verfügung.

  • DEFAULT_PALETTE Standardfarbpalette. Diese Palette besteht aus den 20 statischen Farben in der Systempalette.

Rückgabewert

Ein Zeiger auf das CGdiObject Objekt, das ersetzt wurde, wenn die Funktion erfolgreich ist. Das tatsächliche Objekt, auf das verwiesen wird, ist ein CPen, CBrushoder CFont ein Objekt. Wenn der Aufruf nicht erfolgreich ist, lautet der Rückgabewert NULL.

CDC::SetAbortProc

Installiert die Abbruchprozedur für den Druckauftrag.

int SetAbortProc(BOOL (CALLBACK* lpfn)(HDC, int));

Parameter

lpfn
Ein Zeiger auf die abgebrochene Funktion, die als Abbruchprozedur installiert werden soll. Weitere Informationen zur Rückruffunktion finden Sie unter Callback Function for CDC::SetAbortProc.

Rückgabewert

Gibt das Ergebnis der SetAbortProc Funktion an. Einige der folgenden Werte sind wahrscheinlicher als andere, aber alle sind möglich.

  • SP_ERROR Allgemeiner Fehler.

  • SP_OUTOFDISK Nicht genügend Speicherplatz ist zurzeit für Spooling verfügbar, und es wird kein mehr Speicherplatz zur Verfügung gestellt.

  • SP_OUTOFMEMORY Nicht genügend Arbeitsspeicher ist für das Spooling verfügbar.

  • SP_USERABORT Der Benutzer hat den Auftrag über den Druck-Manager beendet.

Hinweise

Wenn eine Anwendung das Abbrechen des Druckauftrags während des Spoolings zulässt, muss die Abbruchfunktion festgelegt werden, bevor der Druckauftrag mit der StartDoc Memberfunktion gestartet wird. Der Druck-Manager ruft die Abgebrochene Funktion während des Spoolings auf, um der Anwendung das Abbrechen des Druckauftrags oder das Verarbeiten von Nicht-Speicherplatz-Bedingungen zu ermöglichen. Wenn keine Abgebrochene Funktion festgelegt ist, schlägt der Druckauftrag fehl, wenn nicht genügend Speicherplatz für das Spooling vorhanden ist.

Die Features von Microsoft Visual C++ vereinfachen die Erstellung der an die Rückruffunktion übergebenen SetAbortProc. Die an die EnumObjects Memberfunktion übergebene Adresse ist ein Zeiger auf eine Funktion, die mit __declspec(dllexport) und mit der __stdcall aufrufenden Konvention exportiert wurde.

Sie müssen den Funktionsnamen auch nicht in eine EXPORTS Anweisung in der Moduldefinitionsdatei Ihrer Anwendung exportieren. Sie können stattdessen den EXPORT Funktionsmodifizierer wie in

BOOL CALLBACK EXPORT AFunction( HDC, int );

der Compiler bewirkt, dass der richtige Exportdatensatz für den Export nach Namen ohne Alias ausgegeben wird. Dies funktioniert für die meisten Anforderungen. Für einige spezielle Fälle, z. B. das Exportieren einer Funktion nach Ordinal oder Aliasing des Exports, müssen Sie dennoch eine EXPORTS Anweisung in einer Moduldefinitionsdatei verwenden.

Rückrufregistrierungsschnittstellen sind jetzt typsicher (Sie müssen einen Funktionszeiger übergeben, der auf die richtige Art von Funktion für den spezifischen Rückruf verweist).

Alle Rückruffunktionen müssen Microsoft Foundation-Ausnahmen abfangen, bevor sie zu Windows zurückkehren, da Ausnahmen nicht über Rückrufgrenzen hinweg ausgelöst werden können. Weitere Informationen zu Ausnahmen finden Sie im Artikel "Ausnahmen".

CDC::SetArcDirection

Legt die Zeichnungsrichtung fest, die für Bogen- und Rechteckfunktionen verwendet werden soll.

int SetArcDirection(int nArcDirection);

Parameter

nArcDirection
Gibt die neue Bogenrichtung an. Dieser Parameter kann eine der folgenden Werte sein:

  • AD_COUNTERCLOCKWISE Zahlen, die gegen den Uhrzeigersinn gezeichnet wurden.

  • AD_CLOCKWISE Zahlen, die im Uhrzeigersinn gezeichnet wurden.

Rückgabewert

Gibt die alte Bogenrichtung an, wenn dies erfolgreich ist; andernfalls 0.

Hinweise

Die Standardrichtung ist gegen den Uhrzeigersinn. Die SetArcDirection Funktion gibt die Richtung an, in der die folgenden Funktionen zeichnen:

Arc Kreisdiagramm
ArcTo Rectangle
Chord RoundRect
Ellipse

CDC::SetAttribDC

Rufen Sie diese Funktion auf, um den Attributgerätekontext festzulegen. m_hAttribDC

virtual void SetAttribDC(HDC hDC);

Parameter

hDC
Ein Windows-Gerätekontext.

Hinweise

Diese Memberfunktion fügt den Gerätekontext nicht an das CDC Objekt an. Nur der Ausgabegerätekontext ist an ein CDC Objekt angefügt.

CDC::SetBkColor

Legt die aktuelle Hintergrundfarbe auf die angegebene Farbe fest.

virtual COLORREF SetBkColor(COLORREF crColor);

Parameter

crColor
Gibt die neue Hintergrundfarbe an.

Rückgabewert

Die vorherige Hintergrundfarbe als RGB-Farbwert. Wenn ein Fehler auftritt, wird der Rückgabewert 0x80000000.

Hinweise

Wenn der Hintergrundmodus lautet OPAQUE, verwendet das System die Hintergrundfarbe, um die Lücken in formatierten Linien zu füllen, die Lücken zwischen geschlüpften Linien in Pinsel und hintergrund in Zeichenzellen. Das System verwendet auch die Hintergrundfarbe beim Konvertieren von Bitmaps zwischen Farb- und Monochromgerätekontexten.

Wenn das Gerät die angegebene Farbe nicht anzeigen kann, legt das System die Hintergrundfarbe auf die nächste physische Farbe fest.

CDC::SetBkMode

Legt den Hintergrundmodus fest.

int SetBkMode(int nBkMode);

Parameter

nBkMode
Gibt den festzulegenden Modus an. Dieser Parameter kann eine der folgenden Werte sein:

  • OPAQUE Der Hintergrund wird mit der aktuellen Hintergrundfarbe gefüllt, bevor der Text, der geschlüpfte Pinsel oder der Stift gezeichnet wird. Dies ist der Standardhintergrundmodus.

  • TRANSPARENT Der Hintergrund wird vor der Zeichnung nicht geändert.

Rückgabewert

Der vorherige Hintergrundmodus.

Hinweise

Der Hintergrundmodus definiert, ob das System vorhandene Hintergrundfarben auf der Zeichnungsoberfläche entfernt, bevor Text, geschlüpfte Pinsel oder ein Beliebiger Stiftstil, der keine durchgezogene Linie ist, gezeichnet wird.

Beispiel

Sehen Sie sich das Beispiel für CWnd::OnCtlColor.

CDC::SetBoundsRect

Steuert die Akkumulation von Begrenzungsrechteckinformationen für den angegebenen Gerätekontext.

UINT SetBoundsRect(
    LPCRECT lpRectBounds,
    UINT flags);

Parameter

lpRectBounds
Verweist auf eine Struktur oder CRect ein RECT Objekt, die zum Festlegen des umgebenden Rechtecks verwendet wird. Rechteckabmessungen werden in logischen Koordinaten angegeben. Dieser Parameter kann NULL sein.

flags
Gibt an, wie das neue Rechteck mit dem angesammelten Rechteck kombiniert wird. Dieser Parameter kann eine Kombination der folgenden Werte sein:

  • DCB_ACCUMULATE Fügen Sie das rechteck hinzu, das durch lpRectBounds das umgebende Rechteck angegeben wird (mithilfe eines Rechteck-Union-Vorgangs).

  • DCB_DISABLE Deaktivieren Sie die Begrenzungsakkumulation.

  • DCB_ENABLE Aktivieren Sie die Begrenzungsakkumulation. (Die Standardeinstellung für die Begrenzungsakkumulation ist deaktiviert.)

Rückgabewert

Der aktuelle Zustand des umgebenden Rechtecks, wenn die Funktion erfolgreich ist. Wie flagsfolgt kann der Rückgabewert eine Kombination aus DCB_ Werten sein:

  • DCB_ACCUMULATE Das umgebende Rechteck ist nicht leer. Dieser Wert wird immer festgelegt.

  • DCB_DISABLE Die Begrenzungsakkumulation ist deaktiviert.

  • DCB_ENABLE Die Grenzen der Akkumulation sind aktiviert.

Hinweise

Windows kann ein umgebendes Rechteck für alle Zeichnungsvorgänge Standard enthalten. Dieses Rechteck kann von der Anwendung abgefragt und zurückgesetzt werden. Die Zeichnungsgrenzen sind nützlich, um Bitmapcaches ungültig zu machen.

CDC::SetBrushOrg

Gibt den Ursprung an, den GDI dem nächsten Pinsel zuweist, den die Anwendung im Gerätekontext auswählt.

CPoint SetBrushOrg(
    int x,
    int y);

CPoint SetBrushOrg(POINT point);

Parameter

x
Gibt die x-Koordinate (in Geräteeinheiten) des neuen Ursprungs an. Dieser Wert muss sich im Bereich 0-7 befinden.

y
Gibt die y-Koordinate (in Geräteeinheiten) des neuen Ursprungs an. Dieser Wert muss sich im Bereich 0-7 befinden.

point
Gibt die x- und y-Koordinaten des neuen Ursprungs an. Jeder Wert muss sich im Bereich 0-7 befinden. Sie können entweder eine POINT Struktur oder ein CPoint Objekt für diesen Parameter übergeben.

Rückgabewert

Der vorherige Ursprung des Pinsels in Geräteeinheiten.

Hinweise

Die Standardkoordinaten für den Pinselursprung sind (0, 0). Um den Ursprung eines Pinsels zu ändern, rufen Sie die UnrealizeObject Funktion für das CBrush Objekt auf, rufen Sie SetBrushOrgauf, und rufen Sie dann die SelectObject Memberfunktion auf, um den Pinsel im Gerätekontext auszuwählen.

Verwenden Sie nicht SetBrushOrg für Bestandsobjekte CBrush .

CDC::SetColorAdjustment

Legt die Farbanpassungswerte für den Gerätekontext mithilfe der angegebenen Werte fest.

BOOL SetColorAdjustment(const COLORADJUSTMENT* lpColorAdjust);

Parameter

lpColorAdjust
Verweist auf eine COLORADJUSTMENT Datenstruktur, die die Farbanpassungswerte enthält.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Die Farbanpassungswerte werden verwendet, um die Eingabefarbe der Quellbitmap für Aufrufe der Memberfunktion anzupassen, wenn HALFTONE der CDC::StretchBlt Modus festgelegt wird.

CDC::SetDCBrushColor

Legt die farbe des aktuellen Gerätekontexts (DC) auf den angegebenen Farbwert fest.

COLORREF SetDCBrushColor(COLORREF crColor);

Parameter

crColor
Gibt die neue Pinselfarbe an.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt der Rückgabewert die vorherige DC-Pinselfarbe als COLORREF Wert an.

Wenn die Funktion fehlschlägt, lautet CLR_INVALIDder Rückgabewert .

Hinweise

Diese Methode emuliert die Funktionalität der Funktion SetDCBrushColor, wie im Windows SDK beschrieben.

CDC::SetDCPenColor

Legt die farbe des aktuellen Gerätekontexts (DC) auf den angegebenen Farbwert fest.

COLORREF SetDCPenColor(COLORREF crColor);

Parameter

crColor
Gibt die neue Stiftfarbe an.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Diese Memberfunktion verwendet die Win32-Funktion SetDCPenColor, wie im Windows SDK beschrieben.

CDC::SetGraphicsMode

Legt den Grafikmodus für den angegebenen Gerätekontext fest.

int SetGraphicsMode(int iMode);

Parameter

iMode
Gibt den Grafikmodus an. Eine Liste der Werte, die dieser Parameter annehmen kann, finden Sie unter SetGraphicsMode.

Rückgabewert

Gibt den alten Grafikmodus bei Erfolg zurück.

Gibt 0 für Fehler zurück. Um erweiterte Fehlerinformationen abzurufen, rufen Sie GetLastError auf.

Hinweise

Diese Methode umschließt die Windows GDI-Funktion SetGraphicsMode.

CDC::SetLayout

Rufen Sie diese Memberfunktion auf, um das Layout des Texts und der Grafiken für einen Gerätekontext von rechts nach links zu ändern, das Standardlayout für Kulturen wie Arabisch und Hebräisch.

DWORD SetLayout(DWORD dwLayout);

Parameter

dwLayout
Gerätekontextlayout und Bitmap-Steuerelementkennzeichnungen. Dabei kann es sich um eine Kombination der folgenden Werte handeln.

Wert Bedeutung
LAYOUT_BITMAPORIENTATIONPRESERVED Deaktiviert alle Reflexionen für Anrufe und CDC::BitBltCDC::StretchBlt.
LAYOUT_RTL Legt das horizontale Standardlayout auf von rechts nach links fest.
LAYOUT_LTR Legt das Standardlayout fest, das von links nach rechts festgelegt wird.

Rückgabewert

Bei erfolgreicher Ausführung des vorherigen Layouts des Gerätekontexts.

Wenn dies nicht erfolgreich ist, GDI_ERROR. Um erweiterte Fehlerinformationen abzurufen, rufen Sie GetLastError auf.

Hinweise

Normalerweise würden Sie kein Fenster anrufen SetLayout . Stattdessen steuern Sie das Layout von rechts nach links in einem Fenster, indem Sie die erweiterten Fensterformatvorlagen festlegen, z WS_EX_RTLREADING. B. . Ein Gerätekontext, z. B. ein Drucker oder eine Metadatei, erbt dieses Layout nicht. Die einzige Möglichkeit zum Festlegen des Gerätekontexts für ein Layout von rechts nach links ist das Aufrufen SetLayout.

Wenn Sie aufrufen SetLayout(LAYOUT_RTL), SetLayout ändert sich der Zuordnungsmodus automatisch in MM_ISOTROPIC. Daher wird ein nachfolgender Aufruf GetMapMode anstelle MM_ISOTROPIC von MM_TEXT.

In einigen Fällen, z. B. bei vielen Bitmaps, sollten Sie das Layout von links nach rechts beibehalten. Rendern Sie das Bild in diesen Fällen durch Aufrufen BitBlt oder Festlegen des Bitmap-Steuerelement-Flags auf LAYOUT_BITMAPORIENTATIONPRESERVEDdwLayoutStretchBlt.

Nachdem Sie das Layout mit der LAYOUT_RTL Kennzeichnung geändert haben, werden die Flags, die normalerweise rechts oder links angeben, umgekehrt. Um Verwirrung zu vermeiden, sollten Sie alternative Namen für die Standardkennzeichnungen definieren. Eine Liste der vorgeschlagenen alternativen Flagnamen finden Sie im SetLayout Windows SDK.

CDC::SetMapMode

Legt den Zuordnungsmodus fest.

virtual int SetMapMode(int nMapMode);

Parameter

nMapMode
Gibt den neuen Zuordnungsmodus an. Dabei kann es sich um einen der folgenden Werte handeln:

  • MM_ANISOTROPIC Logische Einheiten werden in beliebige Einheiten mit willkürlich skalierten Achsen konvertiert. Durch Festlegen des Zuordnungsmodus MM_ANISOTROPIC werden die aktuellen Fenster- oder Viewporteinstellungen nicht geändert. Rufen Sie SetWindowExt die Funktionen und SetViewportExt Member auf, um die Einheiten, die Ausrichtung und skalierung zu ändern.

  • MM_HIENGLISH Jede logische Einheit wird in 0,001 Zoll konvertiert. Positives x ist rechts; Positives y ist aufwärts.

  • MM_HIMETRIC Jede logische Einheit wird in 0,01 Millimeter konvertiert. Positives x ist rechts; Positives y ist aufwärts.

  • MM_ISOTROPIC Logische Einheiten werden in beliebige Einheiten mit gleichmäßig skalierten Achsen konvertiert; d. h. 1 Einheit entlang der X-Achse ist gleich 1 Einheit entlang der y-Achse. Verwenden Sie die SetWindowExt Funktionen und SetViewportExt Member, um die gewünschten Einheiten und die Ausrichtung der Achsen anzugeben. GDI nimmt bei Bedarf Anpassungen vor, um sicherzustellen, dass die x- und y-Einheiten die gleiche Größe aufweisen Standard.

  • MM_LOENGLISH Jede logische Einheit wird in 0,01 Zoll konvertiert. Positives x ist rechts; Positives y ist aufwärts.

  • MM_LOMETRIC Jede logische Einheit wird in 0,1 Millimeter konvertiert. Positives x ist rechts; Positives y ist aufwärts.

  • MM_TEXT Jede logische Einheit wird in 1 Gerätepixel konvertiert. Positives x ist rechts; Positives y ist unten.

  • MM_TWIPS Jede logische Einheit wird in 1/20 punkt konvertiert. (Da ein Punkt 1/72 Zoll beträgt, beträgt ein Twip 1/1440 Zoll.) Positives x ist rechts; Positives y ist aufwärts.

Rückgabewert

Der vorherige Zuordnungsmodus.

Hinweise

Der Zuordnungsmodus definiert die Maßeinheit, die zum Konvertieren logischer Einheiten in Geräteeinheiten verwendet wird; außerdem wird die Ausrichtung der X- und Y-Achsen des Geräts definiert. GDI verwendet den Zuordnungsmodus, um logische Koordinaten in die entsprechenden Gerätekoordinaten zu konvertieren. Im MM_TEXT Modus können Anwendungen in Gerätepixeln arbeiten, wobei 1 Einheit gleich 1 Pixel ist. Die physische Größe eines Pixels variiert von Gerät zu Gerät.

Die MM_HIENGLISHModi , MM_HIMETRIC, , MM_LOENGLISHMM_LOMETRICund MM_TWIPS die Modi sind nützlich für Anwendungen, die in physisch sinnvollen Einheiten (z. B. Zoll oder Millimeter) zeichnen müssen. Der MM_ISOTROPIC Modus stellt ein Seitenverhältnis von 1:1 sicher, was nützlich ist, wenn es wichtig ist, die genaue Form eines Bilds beizubehalten. Im MM_ANISOTROPIC Modus können die x- und y-Koordinaten unabhängig voneinander angepasst werden.

Hinweis

Wenn Sie aufrufen SetLayout , um den DC -Layout (Gerätekontext) in das Layout von rechts nach links zu ändern, SetLayout wird der Zuordnungsmodus automatisch in MM_ISOTROPIC.

Beispiel

Sehen Sie sich das Beispiel für CView::OnPrepareDC.

CDC::SetMapperFlags

Ändert die von der Schriftartzuordnung verwendete Methode, wenn sie eine logische Schriftart in eine physische Schriftart konvertiert.

DWORD SetMapperFlags(DWORD dwFlag);

Parameter

dwFlag
Gibt an, ob der Schriftartzuordnungsversuch versucht, die Seitenhöhe und -breite einer Schriftart dem Gerät zuzuordnen. Wenn dieser Wert ist ASPECT_FILTERING, wählt der Mapper nur Schriftarten aus, deren x-Aspekt und y-Aspekt genau mit denen des angegebenen Geräts übereinstimmen.

Rückgabewert

Der vorherige Wert des Font-Mapper-Flags.

Hinweise

Eine Anwendung kann dazu führen SetMapperFlags , dass die Schriftartzuordnung versucht, nur eine physische Schriftart auszuwählen, die exakt dem Seitenverhältnis des angegebenen Geräts entspricht.

Eine Anwendung, die nur Rasterschriftarten verwendet, kann die SetMapperFlags Funktion verwenden, um sicherzustellen, dass die von der Schriftartzuordnung ausgewählte Schriftart auf dem angegebenen Gerät attraktiv und lesbar ist. Anwendungen, die skalierbare Schriftarten (TrueType) verwenden, werden in der Regel nicht verwendet SetMapperFlags.

Wenn keine physische Schriftart ein Seitenverhältnis aufweist, das der Spezifikation in der logischen Schriftart entspricht, wählt GDI ein neues Seitenverhältnis aus und wählt eine Schriftart aus, die diesem neuen Seitenverhältnis entspricht.

CDC::SetMiterLimit

Legt den Grenzwert für die Länge der Miter-Verknüpfungen für den Gerätekontext fest.

BOOL SetMiterLimit(float fMiterLimit);

Parameter

fMiterLimit
Gibt den neuen Mitergrenzwert für den Gerätekontext an.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Die Miterlänge wird als Abstand vom Schnittpunkt der Linienwände am Inneren der Verknüpfung zum Schnittpunkt der Linienwände auf der Außenseite der Verknüpfung definiert. Der Mitergrenzwert ist das maximal zulässige Verhältnis der Milbelänge zur Linienbreite. Die Standardmilbegrenze ist 10,0.

CDC::SetOutputDC

Rufen Sie diese Memberfunktion auf, um den Ausgabegerätekontext festzulegen. m_hDC

virtual void SetOutputDC(HDC hDC);

Parameter

hDC
Ein Windows-Gerätekontext.

Hinweise

Diese Memberfunktion kann nur aufgerufen werden, wenn kein Gerätekontext an das CDC Objekt angefügt wurde. Diese Memberfunktion legt fest m_hDC , fügt den Gerätekontext jedoch nicht an das CDC Objekt an.

CDC::SetPixel

Legt das Pixel an dem punkt fest, der auf die näherste Annäherung der durch crColor.

COLORREF SetPixel(
    int x,
    int y,
    COLORREF crColor);

COLORREF SetPixel(
    POINT point,
    COLORREF crColor);

Parameter

x
Gibt die logische x-Koordinate des festzulegenden Punkts an.

y
Gibt die logische y-Koordinate des festzulegenden Punkts an.

crColor
Ein COLORREF RGB-Wert, der die Farbe angibt, die zum Zeichnen des Punkts verwendet wird. Eine Beschreibung dieses Werts finden Sie COLORREF im Windows SDK.

point
Gibt die logischen x- und y-Koordinaten des festzulegenden Punkts an. Sie können entweder eine POINT Struktur oder ein CPoint Objekt für diesen Parameter übergeben.

Rückgabewert

Ein RGB-Wert für die Farbe, die der Punkt gezeichnet wird. Dieser Wert kann sich von diesem Wert unterscheiden, der angegeben crColor wird, wenn eine Annäherung dieser Farbe verwendet wird. Wenn die Funktion fehlschlägt (wenn sich der Punkt außerhalb des Clippingbereichs befindet), lautet der Rückgabewert -1.

Hinweise

Der Punkt muss sich im Beschneidungsbereich befinden. Wenn sich der Punkt nicht im Clippingbereich befindet, führt die Funktion nichts aus.

Nicht alle Geräte unterstützen die SetPixel-Funktion. Um festzustellen, ob ein Gerät unterstützt SetPixelwird, rufen Sie die GetDeviceCaps Memberfunktion mit dem RASTERCAPS Index auf, und überprüfen Sie den Rückgabewert für das RC_BITBLT Flag.

CDC::SetPixelV

Legt das Pixel an den angegebenen Koordinaten auf die nächste Annäherung der angegebenen Farbe fest.

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

BOOL SetPixelV(
    POINT point,
    COLORREF crColor);

Parameter

x
Gibt die x-Koordinate in logischen Einheiten des festzulegenden Punkts an.

y
Gibt die y-Koordinate in logischen Einheiten des festzulegenden Punkts an.

crColor
Gibt die Farbe an, die zum Zeichnen des Punkts verwendet werden soll.

point
Gibt die logischen x- und y-Koordinaten des festzulegenden Punkts an. Sie können entweder eine POINT Datenstruktur oder ein CPoint Objekt für diesen Parameter übergeben.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Der Punkt muss sich sowohl im Clippingbereich als auch im sichtbaren Teil der Geräteoberfläche befinden. Nicht alle Geräte unterstützen die Memberfunktion. Weitere Informationen finden Sie in der RC_BITBLT Funktion in der CDC::GetDeviceCaps Memberfunktion. SetPixelV ist schneller, als SetPixel weil der Farbwert des gezeichneten Punkts nicht zurückgegeben werden muss.

CDC::SetPolyFillMode

Legt den Polygonfüllmodus fest.

int SetPolyFillMode(int nPolyFillMode);

Parameter

nPolyFillMode
Gibt den neuen Füllmodus an. Dieser Wert kann entweder ALTERNATE oder WINDING. Der in Windows festgelegte Standardmodus ist ALTERNATE.

Rückgabewert

Der vorherige Ausfüllmodus, falls erfolgreich; andernfalls 0.

Hinweise

Wenn der Polygonfüllmodus erfolgt ALTERNATE, füllt das System den Bereich zwischen ungeraden und geraden Polygonseiten in jeder Scanlinie aus. Das heißt, das System füllt den Bereich zwischen der ersten und zweiten Seite, zwischen der dritten und vierten Seite usw. aus. Dies ist der Standardmodus.

Wenn der Polygonfüllmodus ist WINDING, verwendet das System die Richtung, in der eine Figur gezeichnet wurde, um zu bestimmen, ob ein Bereich gefüllt werden soll. Jedes Liniensegment in einem Polygon wird entweder im Uhrzeigersinn oder in gegen den Uhrzeigersinn gezeichnet. Wenn eine imaginäre Linie, die von einem eingeschlossenen Bereich an die Außenseite einer Figur gezeichnet wird, durchläuft ein Liniensegment im Uhrzeigersinn, wird eine Anzahl erhöht. Wenn die Linie durch ein gegen den Uhrzeigersinn verläuft, wird die Anzahl dekrementiert. Der Bereich wird gefüllt, wenn die Anzahl ungleich Null ist, wenn die Linie die Außenseite der Abbildung erreicht.

CDC::SetROP2

Legt den aktuellen Zeichnungsmodus fest.

int SetROP2(int nDrawMode);

Parameter

nDrawMode
Gibt den neuen Zeichnungsmodus an. Dabei kann es sich um einen der folgenden Werte handeln:

  • R2_BLACK Pixel ist immer schwarz.

  • R2_WHITE Pixel ist immer weiß.

  • R2_NOPPixel re Standard s unverändert.

  • R2_NOT Pixel ist die Umkehrung der Bildschirmfarbe.

  • R2_COPYPEN Pixel ist die Stiftfarbe.

  • R2_NOTCOPYPEN Pixel ist die Umkehrung der Stiftfarbe.

  • R2_MERGEPENNOT Pixel ist eine Kombination aus der Stiftfarbe und der Umkehrung der Bildschirmfarbe (endgültiges Pixel = (~ Bildschirmpixel) | Stift).

  • R2_MASKPENNOT Pixel ist eine Kombination der Farben, die sowohl für den Stift als auch für die Umkehrung des Bildschirms verwendet werden (endgültiges Pixel = (~ Bildschirmpixel) & Stift).

  • R2_MERGENOTPEN Pixel ist eine Kombination aus der Bildschirmfarbe und der Umkehrung der Stiftfarbe (endgültiges Pixel = (~ Stift) | Bildschirmpixel).

  • R2_MASKNOTPEN Pixel ist eine Kombination der Farben, die sowohl für den Bildschirm als auch für die Umkehrung des Stifts (endgültiges Pixel = (~ Stift) & Bildschirmpixel verwendet werden.

  • R2_MERGEPEN Pixel ist eine Kombination aus der Stiftfarbe und der Bildschirmfarbe (endgültiges Pixel = Stiftbildschirmpixel | ).

  • R2_NOTMERGEPEN Pixel ist die Umkehrung der R2_MERGEPEN Farbe (endgültiges Pixel = ~ (Stiftbildschirmpixel | )).

  • R2_MASKPEN Pixel ist eine Kombination der Farben, die sowohl für den Stift als auch für den Bildschirm verwendet werden (endgültiges Pixel = Stiftbildschirmpixel & ).

  • R2_NOTMASKPEN Pixel ist die Umkehrung der R2_MASKPEN Farbe (endgültiges Pixel = ~ (Stiftbildschirmpixel & )).

  • R2_XORPEN Pixel ist eine Kombination der Farben, die sich im Stift oder im Bildschirm befinden, jedoch nicht in beiden (endgültiges Pixel = Stiftbildschirmpixel ^ ).

  • R2_NOTXORPEN Pixel ist die Umkehrung der R2_XORPEN Farbe (endgültiges Pixel = ~ (Stiftbildschirmpixel ^ )).

Rückgabewert

Der vorherige Zeichnungsmodus.

Dies kann jeder der werte sein, die im Windows SDK angegeben werden.

Hinweise

Der Zeichnungsmodus gibt an, wie die Farben des Stifts und das Innere gefüllter Objekte mit der Farbe kombiniert werden, die sich bereits auf der Anzeigeoberfläche befindet.

Der Zeichnungsmodus ist nur für Rastergeräte vorgesehen. sie gilt nicht für Vektorgeräte. Zeichnungsmodi sind Binäre Rasteroperationscodes, die alle möglichen booleschen Kombinationen von zwei Variablen darstellen, wobei die binären Operatoren &, |und ^ (exklusiv |) und der unäre Vorgang ~verwendet werden.

CDC::SetStretchBltMode

Legt den Bitmap-Stretchmodus für die StretchBlt Memberfunktion fest.

int SetStretchBltMode(int nStretchMode);

Parameter

nStretchMode
Gibt den Dehnungsmodus an. Dabei kann es sich um einen der folgenden Werte handeln:

Wert Beschreibung
BLACKONWHITE Führt einen booleschen & Vorgang mit den Farbwerten für die eliminierten und vorhandenen Pixel aus. Wenn es sich bei der Bitmap um eine monochrome Bitmap handelt, behält dieser Modus schwarze Pixel auf Kosten von weißen Pixeln bei.
COLORONCOLOR Löscht die Pixel. Dieser Modus löscht alle entfernten Pixelzeilen, ohne ihre Informationen beizubehalten.
HALFTONE Karten Pixel aus dem Quellrechteck in Pixelblöcke im Zielrechteck. Die durchschnittliche Farbe über dem Zielblock von Pixeln entspricht der Farbe der Quellpixel.
Nach dem Festlegen des HALFTONE Streckungsmodus muss eine Anwendung die Win32-Funktion SetBrushOrgEx aufrufen, um den Pinselursprung festzulegen. Wenn dies nicht der Fall ist, tritt die Fehlausrichtung des Pinsels auf.
STRETCH_ANDSCANS Windows 95/98: Identisch mit BLACKONWHITE
STRETCH_DELETESCANS Windows 95/98: Identisch mit COLORONCOLOR
STRETCH_HALFTONE Windows 95/98: Identisch mit HALFTONE.
STRETCH_ORSCANS Windows 95/98: Identisch mit WHITEONBLACK
WHITEONBLACK Führt einen booleschen | Vorgang mit den Farbwerten für die eliminierten und vorhandenen Pixel aus. Wenn es sich bei der Bitmap um eine monochrome Bitmap handelt, behält dieser Modus weiße Pixel auf Kosten von schwarzen Pixeln bei.

Rückgabewert

Der vorherige Dehnungsmodus. Es kann sich um STRETCH_ANDSCANS, STRETCH_DELETESCANS oder STRETCH_ORSCANS handeln.

Hinweise

Der Bitmap-Stretchmodus definiert, wie Informationen aus Bitmaps entfernt werden, die mithilfe der Funktion komprimiert werden.

Die Modi (STRETCH_ANDSCANS) und WHITEONBLACK(STRETCH_ORSCANS) werden in der BLACKONWHITERegel verwendet, um Vordergrundpixel in monochromen Bitmaps beizubehalten. Der (STRETCH_DELETESCANS) Modus wird in der COLORONCOLORRegel verwendet, um Farbe in Farbbitmaps beizubehalten.

Der HALFTONE Modus erfordert mehr Verarbeitung des Quellbilds als die anderen drei Modi. Er ist langsamer als die anderen, erzeugt jedoch bilder mit höherer Qualität. Außerdem muss nach dem Festlegen des HALFTONE Modus aufgerufen werden, SetBrushOrgEx um Pinselfehler zu vermeiden.

Je nach den Funktionen des Gerätetreibers sind möglicherweise auch weitere Streckungsmodi verfügbar.

CDC::SetTextAlign

Legt die Textausrichtungskennzeichnungen fest.

UINT SetTextAlign(UINT nFlags);

Parameter

nFlags
Gibt Textausrichtungskennzeichnungen an. Die Flags geben die Beziehung zwischen einem Punkt und einem Rechteck an, das den Text begrenzt. Der Punkt kann entweder die aktuelle Position oder die Koordinaten sein, die durch eine Textausgabefunktion angegeben werden. Das Rechteck, das den Text begrenzt, wird durch die angrenzenden Zeichenzellen in der Textzeichenfolge definiert. Der nFlags Parameter kann ein oder mehrere Flags aus den folgenden drei Kategorien sein. Wählen Sie nur ein Kennzeichen aus jeder Kategorie aus. Die erste Kategorie wirkt sich auf die Textausrichtung in x-Richtung aus:

  • TA_CENTER Richtet den Punkt an der horizontalen Mitte des umgebenden Rechtecks aus.

  • TA_LEFT Richtet den Punkt an der linken Seite des umgebenden Rechtecks aus. Dies ist die Standardeinstellung.

  • TA_RIGHT Richtet den Punkt an der rechten Seite des umgebenden Rechtecks aus.

Die zweite Kategorie wirkt sich auf die Textausrichtung in der Y-Richtung aus:

  • TA_BASELINE Richtet den Punkt an der Basislinie der ausgewählten Schriftart aus.

  • TA_BOTTOM Richtet den Punkt am unteren Rand des umgebenden Rechtecks aus.

  • TA_TOP Richtet den Punkt am oberen Rand des umgebenden Rechtecks aus. Dies ist die Standardeinstellung.

Die dritte Kategorie bestimmt, ob die aktuelle Position aktualisiert wird, wenn Text geschrieben wird:

  • TA_NOUPDATECP Aktualisiert die aktuelle Position nach jedem Aufruf einer Textausgabefunktion nicht. Dies ist die Standardeinstellung.

  • TA_UPDATECP Aktualisiert die aktuelle x-Position nach jedem Aufruf einer Textausgabefunktion. Die neue Position befindet sich auf der rechten Seite des umgebenden Rechtecks für den Text. Wenn dieses Kennzeichen festgelegt ist, werden die in Aufrufen der TextOut Memberfunktion angegebenen Koordinaten ignoriert.

Rückgabewert

Die vorherige Textausrichtungseinstellung, falls erfolgreich. Das Byte mit niedriger Reihenfolge enthält die horizontale Einstellung und das Byte mit hoher Reihenfolge enthält die vertikale Einstellung. andernfalls 0.

Hinweise

Die TextOut Funktionen und ExtTextOut Member verwenden diese Kennzeichen, wenn eine Textzeichenfolge auf einem Display oder Gerät positioniert wird. Die Flags geben die Beziehung zwischen einem bestimmten Punkt und einem Rechteck an, das den Text begrenzt. Die Koordinaten dieses Punkts werden als Parameter an die TextOut Memberfunktion übergeben. Das Rechteck, das den Text begrenzt, wird durch die angrenzenden Zeichenzellen in der Textzeichenfolge gebildet.

CDC::SetTextCharacterExtra

Legt die Menge des Intercharacterabstands fest.

int SetTextCharacterExtra(int nCharExtra);

Parameter

nCharExtra
Gibt den zusätzlichen Abstand (in logischen Einheiten) an, der jedem Zeichen hinzugefügt werden soll. Wenn der aktuelle Zuordnungsmodus nicht MM_TEXTerfolgt, nCharExtra wird er transformiert und auf das nächste Pixel gerundet.

Rückgabewert

Die Menge des vorherigen Intercharacterabstands.

Hinweise

GDI fügt diesen Abstand zu jedem Zeichen, einschließlich Umbruchzeichen, hinzu, wenn eine Textzeile in den Gerätekontext geschrieben wird. Der Standardwert für die Menge des Intercharacterabstands ist 0.

CDC::SetTextColor

Legt die Textfarbe auf die angegebene Farbe fest.

virtual COLORREF SetTextColor(COLORREF crColor);

Parameter

crColor
Gibt die Farbe des Texts als RGB-Farbwert an.

Rückgabewert

Ein RGB-Wert für die vorherige Textfarbe.

Hinweise

Das System verwendet diese Textfarbe beim Schreiben von Text in diesen Gerätekontext und auch beim Konvertieren von Bitmaps zwischen Farb- und Monochromgerätekontexten.

Wenn das Gerät die angegebene Farbe nicht darstellen kann, legt das System die Textfarbe auf die nächste physische Farbe fest. Die Hintergrundfarbe für ein Zeichen wird durch die SetBkColor Funktionen und SetBkMode Member angegeben.

Beispiel

Sehen Sie sich das Beispiel für CWnd::OnCtlColor.

CDC::SetTextJustification

Fügt den Umbruchzeichen in einer Zeichenfolge Leerzeichen hinzu.

int SetTextJustification(
    int nBreakExtra,
    int nBreakCount);

Parameter

nBreakExtra
Gibt den zusätzlichen Gesamtraum an, der der Textzeile (in logischen Einheiten) hinzugefügt werden soll. Wenn der aktuelle Zuordnungsmodus nicht MM_TEXTerfolgt, wird der von diesem Parameter angegebene Wert in den aktuellen Zuordnungsmodus konvertiert und auf die nächste Geräteeinheit gerundet.

nBreakCount
Gibt die Anzahl der Umbruchzeichen in der Zeile an.

Rückgabewert

Eine, wenn die Funktion erfolgreich ist; andernfalls 0.

Hinweise

Eine Anwendung kann die GetTextMetrics Memberfunktionen verwenden, um den Umbruchzeichen einer Schriftart abzurufen.

Nachdem die SetTextJustification Memberfunktion aufgerufen wurde, verteilt ein Aufruf einer Textausgabefunktion (z TextOut. B. ) das angegebene zusätzliche Leerzeichen gleichmäßig unter der angegebenen Anzahl von Umbruchzeichen. Das Umbruchzeichen ist in der Regel das Leerzeichen (ASCII 32), kann jedoch durch eine Schriftart als anderes Zeichen definiert werden.

Die Memberfunktion GetTextExtent wird in der Regel mit SetTextJustification. GetTextExtent berechnet die Breite einer angegebenen Linie vor der Ausrichtung. Eine Anwendung kann bestimmen, wie viel Platz im nBreakExtra Parameter angegeben werden soll, indem der wert subtrahiert wird, der von der Breite der Zeichenfolge nach der Ausrichtung zurückgegeben wird GetTextExtent .

Die SetTextJustification Funktion kann verwendet werden, um eine Linie auszurichten, die mehrere Läufe in verschiedenen Schriftarten enthält. In diesem Fall muss die Linie durch Ausrichten und Schreiben jeder Ausführung separat erstellt werden.

Da rounding errors can occur during alignment, the system keeps a running error term that defines the current error. Beim Ausrichten einer Zeile, die mehrere Läufe enthält, wird dieser Fehlerausdruck automatisch verwendet, GetTextExtent wenn der Umfang der nächsten Ausführung berechnet wird. Dadurch kann die Textausgabefunktion den Fehler in die neue Ausführung mischen.

Nachdem jede Zeile ausgerichtet wurde, muss dieser Fehlerausdruck gelöscht werden, um zu verhindern, dass sie in die nächste Zeile integriert wird. Der Ausdruck kann durch Aufrufen SetTextJustification mit nBreakExtra "0" gelöscht werden.

CDC::SetViewportExt

Legt die x- und y-Erweiterung des Viewports des Gerätekontexts fest.

virtual CSize SetViewportExt(
    int cx,
    int cy);

CSize SetViewportExt(SIZE size);

Parameter

cx
Gibt das x-Ausmaß des Viewports (in Geräteeinheiten) an.

cy
Gibt den y-Bereich des Viewports (in Geräteeinheiten) an.

size
Gibt die x- und y-Erweiterungen des Viewports (in Geräteeinheiten) an.

Rückgabewert

Die vorherigen Ausdehnungen des Viewports als CSize Objekt. Wenn ein Fehler auftritt, werden die x- und y-Koordinaten des zurückgegebenen CSize Objekts auf 0 festgelegt.

Hinweise

Der Viewport definiert zusammen mit dem Gerätekontextfenster, wie GDI Punkte im logischen Koordinatensystem Punkt im Koordinatensystem des tatsächlichen Geräts zu Punkten ordnet. Mit anderen Worten, sie definieren, wie GDI logische Koordinaten in Gerätekoordinaten konvertiert.

Wenn die folgenden Zuordnungsmodi festgelegt werden, werden Aufrufe an SetWindowExt und SetViewportExt ignoriert:

MM_HIENGLISH MM_LOMETRIC
MM_HIMETRIC MM_TEXT
MM_LOENGLISH MM_TWIPS

Wenn MM_ISOTROPIC der Modus festgelegt ist, muss eine Anwendung die SetWindowExt Memberfunktion aufrufen, bevor sie aufgerufen wird SetViewportExt.

Beispiel

Sehen Sie sich das Beispiel für CView::OnPrepareDC.

CDC::SetViewportOrg

Legt den Viewport-Ursprung des Gerätekontexts fest.

virtual CPoint SetViewportOrg(
    int x,
    int y);

CPoint SetViewportOrg(POINT point);

Parameter

x
Gibt die x-Koordinate (in Geräteeinheiten) des Ursprungs des Viewports an. Der Wert muss sich innerhalb des Bereichs des Gerätekoordinatensystems befinden.

y
Gibt die y-Koordinate (in Geräteeinheiten) des Ursprungs des Viewports an. Der Wert muss sich innerhalb des Bereichs des Gerätekoordinatensystems befinden.

point
Gibt den Ursprung des Viewports an. Die Werte müssen sich innerhalb des Bereichs des Gerätekoordinatensystems befinden. Sie können entweder eine POINT Struktur oder ein CPoint Objekt für diesen Parameter übergeben.

Rückgabewert

Der vorherige Ursprung des Viewports (in Gerätekoordinaten) als CPoint Objekt.

Hinweise

Der Viewport definiert zusammen mit dem Gerätekontextfenster, wie GDI Punkte im logischen Koordinatensystem Punkt im Koordinatensystem des tatsächlichen Geräts zu Punkten ordnet. Mit anderen Worten, sie definieren, wie GDI logische Koordinaten in Gerätekoordinaten konvertiert.

Der Viewport-Ursprung markiert den Punkt im Gerätekoordinatensystem, dem GDI den Fensterursprung zuordnet, einem Punkt im logischen Koordinatensystem, das von der SetWindowOrg Memberfunktion angegeben wird. GDI ordnet alle anderen Punkte nach demselben Prozess zu, der zum Zuordnen des Fensterursprungs zum Viewportursprung erforderlich ist. Beispielsweise befinden sich alle Punkte in einem Kreis um den Punkt am Fensterursprung in einem Kreis um den Punkt am Viewportursprung. Ebenso befinden sich alle Punkte in einer Linie, die den Fensterursprung durchläuft, in einer Linie, die durch den Viewportursprung führt.

Beispiel

Sehen Sie sich das Beispiel für CView::OnPrepareDC.

CDC::SetWindowExt

Legt die x- und y-Erweiterung des Fensters fest, das dem Gerätekontext zugeordnet ist.

virtual CSize SetWindowExt(
    int cx,
    int cy);

CSize SetWindowExt(SIZE size);

Parameter

cx
Gibt das x-Extent (in logischen Einheiten) des Fensters an.

cy
Gibt den Y-Bereich (in logischen Einheiten) des Fensters an.

size
Gibt die x- und y-Extents (in logischen Einheiten) des Fensters an.

Rückgabewert

Die vorherigen Ausdehnungen des Fensters (in logischen Einheiten) als CSize Objekt. Wenn ein Fehler auftritt, werden die x- und y-Koordinaten des zurückgegebenen CSize Objekts auf 0 festgelegt.

Hinweise

Das Fenster definiert zusammen mit dem Gerätekontext-Viewport, wie GDI Punkte im logischen Koordinatensystem Punkt im Gerätekoordinatensystem zu Punkten im Gerätekoordinatensystem ordnet.

Wenn die folgenden Zuordnungsmodi festgelegt sind, werden Aufrufe SetWindowExt und SetViewportExt Funktionen ignoriert:

  • MM_HIENGLISH

  • MM_HIMETRIC

  • MM_LOENGLISH

  • MM_LOMETRIC

  • MM_TEXT

  • MM_TWIPS

Wenn MM_ISOTROPIC der Modus festgelegt ist, muss eine Anwendung die SetWindowExt Memberfunktion aufrufen, bevor sie aufgerufen wird SetViewportExt.

Beispiel

Sehen Sie sich das Beispiel für CView::OnPrepareDC.

CDC::SetWindowOrg

Legt den Fensterursprung des Gerätekontexts fest.

CPoint SetWindowOrg(
    int x,
    int y);

CPoint SetWindowOrg(POINT point);

Parameter

x
Gibt die logische x-Koordinate des neuen Ursprungs des Fensters an.

y
Gibt die logische y-Koordinate des neuen Ursprungs des Fensters an.

point
Gibt die logischen Koordinaten des neuen Ursprungs des Fensters an. Sie können entweder eine POINT Struktur oder ein CPoint Objekt für diesen Parameter übergeben.

Rückgabewert

Der vorherige Ursprung des Fensters als CPoint Objekt.

Hinweise

Das Fenster definiert zusammen mit dem Gerätekontext-Viewport, wie GDI Punkte im logischen Koordinatensystem Punkt im Gerätekoordinatensystem zu Punkten im Gerätekoordinatensystem ordnet.

Der Fensterursprung markiert den Punkt im logischen Koordinatensystem, von dem GDI den Viewportursprung, einen Punkt im durch die SetWindowOrg Funktion angegebenen Gerätekoordinatensystem, zuordnet. GDI ordnet alle anderen Punkte nach demselben Prozess zu, der zum Zuordnen des Fensterursprungs zum Viewportursprung erforderlich ist. Beispielsweise befinden sich alle Punkte in einem Kreis um den Punkt am Fensterursprung in einem Kreis um den Punkt am Viewportursprung. Ebenso befinden sich alle Punkte in einer Linie, die den Fensterursprung durchläuft, in einer Linie, die durch den Viewportursprung führt.

CDC::SetWorldTransform

Legt eine zweidimensionale lineare Transformation zwischen Weltraum und Seitenbereich für den angegebenen Gerätekontext fest. Diese Transformation kann zum Skalieren, Drehen, Scheren oder Übersetzen der Grafikausgabe verwendet werden.

BOOL SetWorldTransform(const XFORM& rXform);

Parameter

rXform
Verweisen auf eine XFORM Struktur, die die Transformationsdaten enthält.

Rückgabewert

Gibt einen Wert ungleich Null bei Erfolg zurück.

Gibt 0 für Fehler zurück.

Um erweiterte Fehlerinformationen abzurufen, rufen Sie GetLastError auf.

Hinweise

Diese Methode umschließt die Windows GDI-Funktion SetWorldTransform.

CDC::StartDoc

Informiert den Gerätetreiber darüber, dass ein neuer Druckauftrag gestartet wird und dass alle nachfolgenden StartPage und EndPage Aufrufe unter demselben Auftrag gepoolt werden sollen, bis ein EndDoc Anruf auftritt.

int StartDoc(LPDOCINFO lpDocInfo);
int StartDoc(LPCTSTR lpszDocName);

Parameter

lpDocInfo
Verweist auf eine DOCINFO Struktur, die den Namen der Dokumentdatei und den Namen der Ausgabedatei enthält.

lpszDocName
Zeigen Sie auf eine Zeichenfolge, die den Namen der Dokumentdatei enthält.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert größer als 0. Dieser Wert ist der Druckauftragsbezeichner für das Dokument.

Wenn die Funktion fehlschlägt, ist der Rückgabewert kleiner oder gleich Null.

Hinweise

Dadurch wird sichergestellt, dass Dokumente, die länger als eine Seite sind, nicht mit anderen Aufträgen interspersiert werden.

Bei Windows-Versionen 3.1 und höher ersetzt diese Funktion das STARTDOC Escapezeichen des Druckers. Durch die Verwendung dieser Funktion wird sichergestellt, dass Dokumente, die mehr als eine Seite enthalten, nicht mit anderen Druckaufträgen interspersiert werden.

StartDoc sollte nicht in Metadateien verwendet werden.

Beispiel

Dieses Codefragment ruft den Standarddrucker ab, öffnet einen Druckauftrag und spoolt eine Seite mit "Hello, World!" darauf. Da der von diesem Code gedruckte Text nicht auf die logischen Einheiten des Druckers skaliert wird, kann sich der Ausgabetext in so kleinen Buchstaben befinden, dass das Ergebnis nicht lesbar ist. Die CDC-Skalierungsfunktionen, z SetMapMode. B. , SetViewportOrgund SetWindowExt, können verwendet werden, um die Skalierung zu beheben.

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

Rufen Sie diese Memberfunktion auf, um den Druckertreiber auf den Empfang von Daten vorzubereiten.

int StartPage();

Rückgabewert

Größer als oder gleich 0, wenn die Funktion erfolgreich ist, oder ein negativer Wert, wenn ein Fehler aufgetreten ist.

Hinweise

StartPage ersetzt die NEWFRAME und BANDINFO entweicht.

Eine Übersicht über die Abfolge von Druckaufrufen finden Sie in der StartDoc Memberfunktion.

Das System deaktiviert die ResetDC Memberfunktion zwischen Aufrufen StartPage und EndPage.

Beispiel

Sehen Sie sich das Beispiel für CDC::StartDoc.

CDC::StretchBlt

Kopiert eine Bitmap aus einem Quellrechteck in ein Zielrechteck, wobei das Bitmap gestreckt oder komprimiert wird, falls dies notwendig ist, um zu den Maßen des Zielrechtecks zu passen.

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

Parameter

x
Gibt die x-Koordinate (in logischen Einheiten) der oberen linken Ecke des Zielrechtecks an.

y
Gibt die y-Koordinate (in logischen Einheiten) der oberen linken Ecke des Zielrechtecks an.

nWidth
Gibt die Breite (in logischen Einheiten) des Zielrechtecks an.

nHeight
Gibt die Höhe (in logischen Einheiten) des Zielrechtecks an.

pSrcDC
Gibt den Quellgerätekontext an.

xSrc
Gibt die x-Koordinate (in logischen Einheiten) der oberen linken Ecke des Quellrechtecks an.

ySrc
Gibt die y-Koordinate (in logischen Einheiten) der oberen linken Ecke des Quellrechtecks an.

nSrcWidth
Gibt die Breite (in logischen Einheiten) des Quellrechtecks an.

nSrcHeight
Gibt die Höhe (in logischen Einheiten) des Quellrechtecks an.

dwRop
Gibt das Raster des auszuführenden Vorgangs an. Rastervorgangscode definiert, wie GDI Farben in Ausgabevorgängen kombiniert, an denen ein aktueller Pinsel, eine mögliche Quellbitmap und eine Zielbitmap beteiligt sind. Dieser Parameter kann möglicherweise einen der folgenden Werte aufweisen:

  • BLACKNESS Schaltet alle Ausgabe schwarz um.

  • DSTINVERT Invertiert die Zielbitmap.

  • MERGECOPY Kombiniert das Muster und die Quellbitmap mit dem booleschen AND-Operator .

  • MERGEPAINT Kombiniert die invertierte Quellbitmap mit der Zielbitmap mit dem booleschen OR-Operator .

  • NOTSRCCOPY Kopiert die invertierte Quellbitmap an das Ziel.

  • NOTSRCERASE Invertiert das Ergebnis der Kombination der Ziel- und Quellbitmaps mithilfe des booleschen OR-Operators .

  • PATCOPY Kopiert das Muster in die Zielbitmap.

  • PATINVERT Kombiniert die Zielbitmap mit dem Muster mit dem booleschen XOR-Operator .

  • PATPAINT Kombiniert die invertierte Quellbitmap mit dem Muster mithilfe des booleschen OR-Operators . Kombiniert das Ergebnis dieses Vorgangs mit der Zielbitmap mithilfe des booleschen OR-Operators .

  • SRCAND Kombiniert Pixel der Ziel- und Quellbitmaps mit dem booleschen AND-Operator .

  • SRCCOPY Kopiert die Quellbitmap in die Zielbitmap.

  • SRCERASE Invertiert die Zielbitmap und kombiniert das Ergebnis mit der Quellbitmap mit dem booleschen AND-Operator .

  • SRCINVERT Kombiniert Pixel der Ziel- und Quellbitmaps mit dem booleschen XOR-Operator .

  • SRCPAINT Kombiniert Pixel der Ziel- und Quellbitmaps mit dem booleschen OR-Operator .

  • WHITENESS Schaltet alle Ausgabe weiß um.

Rückgabewert

Ist ungleich null (0), wenn die Bitmap gezeichnet wird, andernfalls null (0).

Hinweise

Die Funktion verwendet den Streckmodus des Zielgerätkontexts (durch SetStretchBltMode festgelegt), um zu bestimmen, wie die Bitmap gestreckt oder komprimiert werden soll.

Die StretchBlt Funktion verschiebt die Bitmap vom Quellgerät, das vom pSrcDC Zielgerät zurückgegeben wird, das durch das Gerätekontextobjekt dargestellt wird, dessen Memberfunktion aufgerufen wird. Die Parameter , ySrc, und nSrcHeightnSrcWidthdie xSrcParameter definieren die obere linke Ecke und Dimensionen des Quellrechtecks. Die Parameter , y, nWidthund die xnHeight Parameter geben die obere linke Ecke und Die Abmessungen des Zielrechtecks. Der durch dwRop die Definition angegebene Rastervorgang definiert, wie die Quellbitmap und die Bits, die sich bereits auf dem Zielgerät befinden, kombiniert werden.

Die StretchBlt Funktion erstellt ein Spiegel Bild einer Bitmap, wenn sich die Zeichen der nSrcWidth und nWidth oder oder nSrcHeight der nHeight Parameter unterscheiden. Wenn nSrcWidth sie nWidth unterschiedliche Zeichen aufweisen, erstellt die Funktion ein Spiegel Bild der Bitmap entlang der X-Achse. Wenn nSrcHeight und nHeight unterschiedliche Zeichen aufweisen, erstellt die Funktion ein Spiegel Bild der Bitmap entlang der Y-Achse.

Die Funktion StretchBlt streckt oder komprimiert die Quellbitmap im Speicher und kopiert dann das Ergebnis in das Ziel. Wenn ein Muster mit dem Ergebnis zusammengeführt werden soll, wird es erst zusammengeführt, wenn die gestreckte Quellbitmap an das Ziel kopiert wird. Wenn ein Pinsel verwendet wird, ist es der ausgewählte Pinsel im Zielgerätekontext. Die Zielkoordinaten werden gemäß dem Zielgerätekontext transformiert. Die Quellkoordinaten werden gemäß dem Quellgerätekontext transformiert.

Wenn die Ziel-, Quell- und Musterbitmaps nicht das gleiche Farbformat aufweisen, StretchBlt werden die Quell- und Musterbitmaps in übereinstimmung mit den Zielbitmaps konvertiert. Die Vordergrund- und Hintergrundfarben des Zielgerätekontexts werden bei der Konvertierung verwendet.

Wenn StretchBlt eine monochrome Bitmap in eine farbige konvertiere muss, legt sie weiße Bits (1) für die Hintergrundfarbe und schwarze Bits (0) für die Vordergrundfarbe fest. Um Farbe in monochrom zu verwandeln, legt sie Pixel, die mit der Hintergrundfarbe übereinstimmen, auf weiß (1) fest und legt alle anderen Pixel auf schwarz (0) fest. Die Vordergrund- und Hintergrundfarben des Gerätekontexts mit Farbe werden verwendet.

Nicht alle Geräte unterstützen die StretchBlt-Funktion. Um festzustellen, ob ein Gerät unterstützt StretchBltwird, rufen Sie die GetDeviceCaps Memberfunktion mit dem RASTERCAPS Index auf, und überprüfen Sie den Rückgabewert für das RC_STRETCHBLT Flag.

CDC::StrokeAndFillPath

Schließt alle geöffneten Abbildungen in einem Pfad, stricht den Umriss des Pfads mithilfe des aktuellen Stifts und füllt das Innere mithilfe des aktuellen Pinsels.

BOOL StrokeAndFillPath();

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Der Gerätekontext muss einen geschlossenen Pfad enthalten. Die StrokeAndFillPath Memberfunktion hat die gleiche Wirkung wie das Schließen aller geöffneten Abbildungen im Pfad, und Streichen und Ausfüllen des Pfads separat, mit der Ausnahme, dass der gefüllte Bereich den Strichbereich nicht überlappt, auch wenn der Stift breit ist.

CDC::StrokePath

Rendert den angegebenen Pfad mithilfe des aktuellen Stifts.

BOOL StrokePath();

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Der Gerätekontext muss einen geschlossenen Pfad enthalten.

CDC::TabbedTextOut

Rufen Sie diese Memberfunktion auf, um eine Zeichenfolge an der angegebenen Position zu schreiben, und erweitern Sie Tabstopps auf die Werte, die im Array von Tabstopppositionen angegeben sind.

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);

Parameter

x
Gibt die logische x-Koordinate des Startpunkts der Zeichenfolge an.

y
Gibt die logische y-Koordinate des Startpunkts der Zeichenfolge an.

lpszString
Verweist auf die zu zeichnende Zeichenfolge. Sie können entweder einen Zeiger an ein Array von Zeichen oder ein CString Objekt für diesen Parameter übergeben.

nCount
Gibt die Länge der Zeichenfolge an, auf die verwiesen wird lpszString.

nTabPositions
Gibt die Anzahl der Werte im Array von Tabstopppositionen an.

lpnTabStopPositions
Verweist auf ein Array mit den Tabstopppositionen (in logischen Einheiten). Die Tabstopps müssen in zunehmender Reihenfolge sortiert werden. Der kleinste x-Wert sollte das erste Element im Array sein.

nTabOrigin
Gibt die x-Koordinate der Startposition an, von der Registerkarten erweitert werden (in logischen Einheiten).

str
Ein CString Objekt, das die angegebenen Zeichen enthält.

Rückgabewert

Die Dimensionen der Zeichenfolge (in logischen Einheiten) als CSize Objekt.

Hinweise

Text wird in der aktuell ausgewählten Schriftart geschrieben. Wenn nTabPositions 0 ist und lpnTabStopPositions ist NULL, werden Tabstopps auf acht mal die durchschnittliche Zeichenbreite erweitert.

Wenn nTabPositions 1 ist, werden die Tabstopps durch den Abstand getrennt, der durch den ersten Wert im lpnTabStopPositions Array angegeben wird. Wenn das lpnTabStopPositions Array mehrere Werte enthält, wird für jeden Wert im Array ein Tabstopp festgelegt, bis zur durch nTabPositions. Der nTabOrigin Parameter ermöglicht es einer Anwendung, die TabbedTextOut Funktion mehrmals für eine einzelne Zeile aufzurufen. Wenn die Anwendung die Funktion mehrmals mit dem nTabOrigin Wert auf denselben Wert aufruft, erweitert die Funktion alle Registerkarten relativ zur angegebenen nTabOriginPosition.

Standardmäßig wird die aktuelle Position von der Funktion nicht verwendet oder aktualisiert. Wenn eine Anwendung die aktuelle Position aktualisieren muss, wenn sie die Funktion aufruft, kann die Anwendung die SetTextAlign Memberfunktion mit nFlags "Set" TA_UPDATECPaufrufen. Wenn dieses Kennzeichen festgelegt ist, ignoriert Windows die x parameter für y nachfolgende Aufrufe TabbedTextOutstattdessen mithilfe der aktuellen Position.

CDC::TextOut

Schreibt mithilfe der aktuell ausgewählten Schriftart eine Zeichenfolge an dem angegebenen Speicherort.

virtual BOOL TextOut(
    int x,
    int y,
    LPCTSTR lpszString,
    int nCount);

BOOL TextOut(
    int x,
    int y,
    const CString& str);

Parameter

x
Gibt die logische x-Koordinate des Anfangspunkts des Texts an.

y
Gibt die logische y-Koordinate des Anfangspunkts des Texts an.

lpszString
Zeigt auf die zu zeichnende Zeichenfolge.

nCount
Gibt die Anzahl von Zeichen in der Zeichenfolge an.

str
Ein CString-Objekt, das die zu zeichnenden Zeichen enthält.

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Zeichenursprünge befindet sich in der oberen linken Ecke der Zeichenzelle. Standardmäßig wird die aktuelle Position von der Funktion nicht verwendet oder aktualisiert.

Wenn eine Anwendung beim Aufrufen TextOutdie aktuelle Position aktualisieren muss, kann die Anwendung die SetTextAlign Memberfunktion mit nFlags "Set" TA_UPDATECPaufrufen. Wenn dieses Kennzeichen festgelegt ist, ignoriert Windows die x parameter für y nachfolgende Aufrufe TextOutstattdessen mithilfe der aktuellen Position.

Beispiel

Sehen Sie sich das Beispiel für CDC::BeginPath.

CDC::TransparentBlt

Rufen Sie diese Memberfunktion auf, um einen Bitblock der Farbdaten zu übertragen, der einem Rechteck von Pixeln aus dem angegebenen Quellgerätekontext entspricht, in einen Zielgerätekontext.

BOOL TransparentBlt(
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    UINT clrTransparent);

Parameter

xDest
Gibt die x-Koordinate in logischen Einheiten der oberen linken Ecke des Zielrechtecks an.

yDest
Gibt die y-Koordinate in logischen Einheiten der oberen linken Ecke des Zielrechtecks an.

nDestWidth
Gibt die Breite des Zielrechtecks in logischen Einheiten an.

nDestHeight
Gibt die Höhe des Zielrechtecks in logischen Einheiten an.

pSrcDC
Zeiger auf den Quellgerätekontext.

xSrc
Gibt die x-Koordinate in logischen Einheiten des Quellrechtecks an.

ySrc
Gibt die y-Koordinate in logischen Einheiten des Quellrechtecks an.

nSrcWidth
Gibt die Breite des Quellrechtecks in logischen Einheiten an.

nSrcHeight
Gibt die Höhe des Quellrechtecks in logischen Einheiten an.

clrTransparent
Die RGB-Farbe in der Quellbitmap, die als transparent behandelt werden soll.

Rückgabewert

TRUE, wenn erfolgreich, andernfalls FALSE.

Hinweise

TransparentBlt ermöglicht Transparenz; d. h., die durch clrTransparent die angegebene RGB-Farbe wird für die Übertragung transparent gerendert.

Weitere Informationen finden Sie im TransparentBlt Windows SDK.

CDC::UpdateColors

Aktualisiert den Clientbereich des Gerätekontexts, indem die aktuellen Farben im Clientbereich der Systempalette auf Pixelbasis zugeordnet werden.

void UpdateColors();

Hinweise

Ein inaktives Fenster mit einer realisierten logischen Palette kann eine Alternative zum Neurappen des Clientbereichs aufrufen UpdateColors , wenn sich die Systempalette ändert.

Weitere Informationen zur Verwendung von Farbpaletten finden Sie im UpdateColors Windows SDK.

Die UpdateColors Memberfunktion aktualisiert in der Regel einen Clientbereich schneller als das Neurappen des Bereichs. Da die Funktion jedoch die Farbübersetzung basierend auf der Farbe der einzelnen Pixel ausführt, bevor die Systempalette geändert wurde, führt jeder Aufruf dieser Funktion zu einem Verlust der Farbgenauigkeit.

CDC::WidenPath

Definiert den aktuellen Pfad als Bereich neu, der gezeichnet würde, wenn der Pfad mit dem aktuell im Gerätekontext ausgewählten Stift striche.

BOOL WidenPath();

Rückgabewert

Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).

Hinweise

Diese Funktion ist nur erfolgreich, wenn der aktuelle Stift ein geometrischer Stift ist, der von der zweiten Version der CreatePen Memberfunktion erstellt wird, oder wenn der Stift mit der ersten Version von CreatePen und mit einer Breite von größer als 1 erstellt wird. Der Gerätekontext muss einen geschlossenen Pfad enthalten. Alle Bzierkurven im Pfad werden in Abfolgen gerader Linien umgewandelt, die die verbreiterten Kurven angrenzen. Daher werden keine Bzierkurven wieder Standard im Pfad nach WidenPath dem Aufruf aufgerufen.

Siehe auch

CObject Klasse
Hierarchiediagramm
CPaintDC Klasse
CWindowDC Klasse
CClientDC Klasse
CMetaFileDC Klasse