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 verwirft sie. |
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 (gespiegelt) 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 |
Ordnet Paletteneinträge in der aktuellen logischen Palette der Systempalette zu. |
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_hAttribDC den Attributgerätekontext frei. |
CDC::ReleaseOutputDC |
Gibt m_hDC den 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_hAttribDC den 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_hDC den 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 SetLayout
zum 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_hDC
m_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 CDC
finden Sie unter "Gerätekontexte".
Vererbungshierarchie
CDC
Anforderungen
Header: afxwin.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
oderNEXTBAND
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 CDC
oder 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
Ein Beispiel hierfür finden Sie unter CDC::StartDoc
.
CDC::AbortPath
Schließt alle Pfade im Gerätekontext und verwirft sie.
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 wird verworfen. Wenn im Gerätekontext ein geschlossener Pfad vorhanden ist, wird der Pfad verworfen.
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 ( x2
y2
) 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_hDC
im Ausgabegerätekontext als auch im m_hAttribDC
Attributgerä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 aufruft BeginPath
, werden alle vorherigen Pfade verworfen.
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_BYTEALIGNWINDOW
CS_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 BitBlt
wird, verwenden Sie die GetDeviceCaps
Memberfunktion, und geben Sie den RASTERCAPS-Index an.
Beispiel
Ein Beispiel hierfür finden Sie unter 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 ( , x1
y1
) und ( y2
x2
) 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 ( y4
x4
, ) 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 CloseFigure
Klammern 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 pDC
angegebenen 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::GetDeviceCaps
die 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::GetDC
abgerufen 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 CreateIC
CreateCompatibleDC
.
Beispiel
Ein Beispiel hierfür finden Sie unter CPrintDialog::GetPrinterDC
.
CDC::DeleteTempMap
Wird automatisch vom CWinApp
Leerlaufzeithandler aufgerufen, werden alle temporären CDC
Objekte gelöscht, DeleteTempMap
die von FromHandle
ihnen erstellt wurden, aber die Gerätekontexthandles (hDC
s) werden nicht vorübergehend zerstört, die den CDC
Objekten zugeordnet sind.
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_LOMETRIC
oder 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 DrawDragRect
wird 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 NULL
der 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 StatusDFCS_BUTTONCHECK
KontrollkästchenDFCS_BUTTONPUSH
DruckknopfDFCS_BUTTONRADIO
OptionsfeldDFCS_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üpfeilDFCS_MENUBULLET
KugelDFCS_MENUCHECK
Häkchen
DFC_SCROLL
DFCS_SCROLLCOMBOBOX
Bildlaufleiste für KombinationsfeldDFCS_SCROLLDOWN
NACH-UNTEN-TASTE der BildlaufleisteDFCS_SCROLLLEFT
NACH-LINKS-TASTE der BildlaufleisteDFCS_SCROLLRIGHT
Pfeil nach rechts der BildlaufleisteDFCS_SCROLLSIZEGRIP
Größenziehpunkt in der unteren rechten Ecke des FenstersDFCS_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::LoadStandardIcon
CWinApp::LoadOEMIcon
. Der MM_TEXT
Zuordnungsmodus muss vor der Verwendung dieser Funktion ausgewählt werden.
Beispiel
Ein Beispiel hierfür finden Sie unter 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_NORMAL
wird 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 lpszText
durch . 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_ELLIPSIS
DT_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_NOCLIP
und 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 nFormat
angegeben.
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_ELLIPSIS
DT_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_NOCLIP
und 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 AbortDoc
Vorgang zu beenden. GDI beendet den Vorgang automatisch, bevor der Fehlerwert zurückgegeben wird.
Diese Funktion sollte nicht in Metadateien verwendet werden.
Beispiel
Ein Beispiel hierfür finden Sie unter 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 NEWFRAME
wird diese Funktion immer nach dem Drucken einer Seite aufgerufen.
Beispiel
Ein Beispiel hierfür finden Sie unter 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
Ein Beispiel hierfür finden Sie unter 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 EnumObjects
Funktion 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 MakeProcInstance
verwenden, 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 lpszInData
verwiesen 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 durchcrColor
. Diese Formatvorlage ist identisch mit der Füllung, die vonFloodFill
.FLOODFILLSURFACE
Der Füllbereich wird durch die durchcrColor
. 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 nFillType
angeben können.
Wenn nFillType
dieser Wert festgelegt FLOODFILLBORDER
ist, wird davon ausgegangen, dass der Bereich vollständig durch die durch crColor
die 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 FLOODFILLSURFACE
nFillType
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 crColor
die 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 denSetBkColor
Funktionen und Memberfunktionen festlegen undGetBkColor
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. BlpDxWidths
i
. 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 ExtTextOut
die aktuelle Position aktualisieren muss, kann die Anwendung die CDC
Memberfunktion SetTextAlign
mit nFlags
"Set" TA_UPDATECP
aufrufen. 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 lpDxWidths
nachdem, 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 aus dem Gerätekontext verworfen.
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
, CreatePatternBrush
und , 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. FillRect
Vergleicht die Werte des top
angegebenen Rechtecks , bottom
left
, und right
member des angegebenen Rechtecks. Wenn bottom
kleiner oder gleich top
oder right
kleiner als oder gleich left
ist, 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 pBrush
Bereich 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
, , CreateSolidBrush
oder von GetStockObject
.
Beispiel
Ein Beispiel hierfür finden Sie unter 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 FillSolidRect
wird die Hintergrundfarbe, die zuvor mit SetBkColor
der 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 crColor
aufweist, oder der Punkt liegt außerhalb des Beschneidungsbereichs.
Hinweise
Es wird davon ausgegangen, dass der Bereich wie angegeben crColor
begrenzt 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 top
ist oder right
kleiner als oder gleich left
ist, 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 pBrush
Pinsel 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
Ein Beispiel hierfür finden Sie unter 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
Ein Beispiel hierfür finden Sie unter 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_hAttribDC
des 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 lpRect
verwiesen 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_INVALID
der 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_INVALID
der 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
Ein Beispiel hierfür finden Sie unter 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 , dwOffset
und cbData
die dwTable
Parameter 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 NULL
nFormat
, 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 lpmat2
die 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:
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 nPairs
enthalten. 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_hDC
und 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_hDC
des 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 lpnTabStopPositions
verwiesen 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 nTabPositions
Zahl festgelegt.
CDC::GetOutputTextExtent
Rufen Sie diese Memberfunktion auf, um den Ausgabegerätekontext zu verwenden und m_hDC
die 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_hDC
des 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 inlpPoints
einer nicht zusammenhängenden Abbildung beginnt.PT_LINETO
Gibt an, dass der vorherige Punkt und der entsprechende PunktlpPoints
die Endpunkte einer Linie sind.PT_BEZIERTO
Gibt an, dass der entsprechende PunktlpPoints
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 letztenPT_MOVETO
entspricht.
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 GetPath
dem Aufruf aufgerufen werden, um alle Kurven im Pfad in Liniensegmente zu konvertieren.
Beispiel
Ein Beispiel hierfür finden Sie unter 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_DELETESCANS
wenn 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_hAttribDC
des 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 lpnTabStopPositions
verwiesen 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 nTabPositions
Zahl 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:
Wenden Sie den bitweisen OR (
|
) -Operator auf das Flag und die zugehörigen Flags an, gruppiert wie folgt:TA_LEFT
,TA_CENTER
undTA_RIGHT
TA_BASELINE
,TA_BOTTOM
undTA_TOP
TA_NOUPDATECP
undTA_UPDATECP
Wenden Sie den C++-Operator bitweise UND (
&
) auf das Ergebnis und den Rückgabewert vonGetTextAlign
.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
, ExtTextOut
und 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_hAttribDC
dem 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 pgiIn
verwiesen 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 NULL
der 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 cgi
sollte, füllt die Funktion das Array nur für so viele Glyphenindizes wie angegeben aus lpnFit
. Ist lpnDx
dies NULL
der 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 pgiIn
verwiesen 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ückruffunktion OutputFunc
. 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 NULL
der 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_LOENGLISH
oder MM_HIENGLISH
MM_LOMETRIC
MM_HIMETRIC
die 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
, , x2
und 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 x
oder y
auf point
.
Beispiel
Ein Beispiel hierfür finden Sie unter 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 BitBlt
beim 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 MaskBlt
gesendet 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
Ein Beispiel hierfür finden Sie unter 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 PatBlt
wird, 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
, x2
und y2
(oder durch lpRect
) angegeben ist. Die Anfangs- und Endpunkte des Bogens werden durch x3
, y3
, , x4
und 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
).y4
y3
x4
x3
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 PlayMetaFile
aufruft, 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 PlayMetaFile
von .) 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
Ein Beispiel hierfür finden Sie unter 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_CLOSEFIGURE
Gibt an, dass die Abbildung nach Abschluss des Punkts oderPT_BEZIERTO
TypsPT_LINETO
automatisch geschlossen wird. Eine Linie wird von diesem Punkt auf den neuestenPT_MOVETO
oderMoveTo
punkt gezeichnet.Dieses Kennzeichen wird mit dem
PT_LINETO
Typ für eine Linie oder mit demPT_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::LineTo
und CDC::PolyBezierTo
Memberfunktionen zu CDC::MoveTo
zeichnen. 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::MoveTo
CDC::LineTo
oder eines CDC::BezierTo
Vorgangs ist. Es ist auch möglich, Zahlen zu schließen. Diese Funktion aktualisiert die aktuelle Position.
Beispiel
Ein Beispiel hierfür finden Sie unter 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
Ordnet Einträge aus der aktuellen logischen Palette der Systempalette zu.
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 RealizePalette
hat, 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, der von Windows verwaltet wird.
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 RestoreDC
wiederherzustellen.
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 lpRectScroll
verwiesen 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 ScrollDC
werden.
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
NULL
bei 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 derRGN_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 durchpRgn
.RGN_COPY
Der neue Beschneidungsbereich ist eine Kopie der region, die durchpRgn
. Dies ist identisch mit der ersten Version vonSelectClipRgn
. Wenn der durchpRgn
diese Region identifizierteNULL
Bereich 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 durchpRgn
.RGN_OR
Der neue Beschneidungsbereich kombiniert den aktuellen Beschneidungsbereich und den durchpRgn
.RGN_XOR
Der neue Beschneidungsbereich kombiniert den aktuellen Beschneidungsbereich und den durchpRgn
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 CreatePalette
erstellt 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 pPalette
die 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 aufSYSTEM_FONT
die Schriftart zu verlassen, die von Dialogfeldern und Fenstern verwendet wird. Verwenden Sie stattdessen dieSystemParametersInfo
Funktion mit demSPI_GETNONCLIENTMETRICS
Parameter, um die aktuelle Schriftart abzurufen.SystemParametersInfo
berücksichtigt das aktuelle Design und stellt Schriftartinformationen für Beschriftungen, 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
, CBrush
oder 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 | Kreis |
---|---|
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
Ein Beispiel hierfür finden Sie unter 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 aus den folgenden Werte sein:
DCB_ACCUMULATE
Fügen Sie das rechteck hinzu, das durchlpRectBounds
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 flags
folgt 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 verwalten. 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 SetBrushOrg
auf, 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_INVALID
der 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::BitBlt CDC::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_BITMAPORIENTATIONPRESERVED
dwLayout
StretchBlt
.
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 ZuordnungsmodusMM_ANISOTROPIC
werden die aktuellen Fenster- oder Viewporteinstellungen nicht geändert. Rufen SieSetWindowExt
die Funktionen undSetViewportExt
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 dieSetWindowExt
Funktionen undSetViewportExt
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 dieselbe Größe aufweisen.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_HIENGLISH
Modi , MM_HIMETRIC
, , MM_LOENGLISH
MM_LOMETRIC
und 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
Ein Beispiel hierfür finden Sie unter 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 SetPixel
wird, 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. Dieser Modus 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_NOP
Pixel bleibt 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 derR2_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 derR2_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 derR2_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 |
Ordnet Pixel aus dem Quellrechteck in Blöcken von Pixeln im Zielrechteck zu. 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 BLACKONWHITE
Regel verwendet, um Vordergrundpixel in monochromen Bitmaps beizubehalten. Der (STRETCH_DELETESCANS
) Modus wird in der COLORONCOLOR
Regel 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 derTextOut
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_TEXT
erfolgt, 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
Ein Beispiel hierfür finden Sie unter 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_TEXT
erfolgt, 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
Ein Beispiel hierfür finden Sie unter 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
Ein Beispiel hierfür finden Sie unter 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
Ein Beispiel hierfür finden Sie unter 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. , SetViewportOrg
und 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
Ein Beispiel hierfür finden Sie unter 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 nSrcHeight
nSrcWidth
die xSrc
Parameter definieren die obere linke Ecke und Dimensionen des Quellrechtecks. Die Parameter , y
, nWidth
und die x
nHeight
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 Spiegelbild einer Bitmap, wenn sich die Zeichen der nSrcWidth
Und- oder nWidth
Parameter nSrcHeight
nHeight
unterscheiden. Wenn nSrcWidth
sie nWidth
unterschiedliche Zeichen aufweisen, erstellt die Funktion ein Spiegelbild der Bitmap entlang der X-Achse. Wenn nSrcHeight
sie nHeight
unterschiedliche Zeichen aufweisen, erstellt die Funktion ein Spiegelbild 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 StretchBlt
wird, 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 nTabOrigin
Position.
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_UPDATECP
aufrufen. Wenn dieses Kennzeichen festgelegt ist, ignoriert Windows die x
parameter für y
nachfolgende Aufrufe TabbedTextOut
stattdessen 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 TextOut
die aktuelle Position aktualisieren muss, kann die Anwendung die SetTextAlign
Memberfunktion mit nFlags
"Set" TA_UPDATECP
aufrufen. Wenn dieses Kennzeichen festgelegt ist, ignoriert Windows die x
parameter für y
nachfolgende Aufrufe TextOut
stattdessen mithilfe der aktuellen Position.
Beispiel
Ein Beispiel hierfür finden Sie unter 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 verbleiben keine Bzierkurven nach dem Aufruf im Pfad WidenPath
.
Siehe auch
CObject
-Klasse
Hierarchiediagramm
CPaintDC
Klasse
CWindowDC
Klasse
CClientDC
Klasse
CMetaFileDC
Klasse