Partager via


La classe CDC

Définit une classe d’objets de contexte de périphérique.

Syntaxe

class CDC : public CObject

Membres

Constructeurs publics

Nom Description
CDC::CDC Construit un objet CDC.

Méthodes publiques

Nom Description
CDC::AbortDoc Termine le travail d’impression actuel, effançant tout ce que l’application a écrit sur l’appareil depuis le dernier appel de la StartDoc fonction membre.
CDC::AbortPath Ferme et ignore tous les chemins d’accès dans le contexte de l’appareil.
CDC::AddMetaFileComment Copie le commentaire d’une mémoire tampon dans un métafichier de format amélioré spécifié.
CDC::AlphaBlend Affiche des bitmaps qui ont des pixels transparents ou semi-transparents.
CDC::AngleArc Dessine un segment de trait et un arc, et déplace la position actuelle vers le point de fin de l’arc.
CDC::Arc Dessine un arc elliptique.
CDC::ArcTo Dessine un arc elliptique. Cette fonction est similaire à Arc, sauf que la position actuelle est mise à jour.
CDC::Attach Attache un contexte d’appareil Windows à cet CDC objet.
CDC::BeginPath Ouvre un crochet de chemin dans le contexte de l’appareil.
CDC::BitBlt Copie une bitmap à partir d’un contexte d’appareil spécifié.
CDC::Chord Dessine une corde (une figure fermée délimitée par l’intersection d’un ellipse et d’un segment de trait).
CDC::CloseFigure Ferme une figure ouverte dans un chemin d’accès.
CDC::CreateCompatibleDC Crée un contexte de périphérique mémoire compatible avec un autre contexte d’appareil. Vous pouvez l’utiliser pour préparer des images en mémoire.
CDC::CreateDC Crée un contexte d’appareil pour un appareil spécifique.
CDC::CreateIC Crée un contexte d’informations pour un appareil spécifique. Cela permet d’obtenir rapidement des informations sur l’appareil sans créer de contexte d’appareil.
CDC::DeleteDC Supprime le contexte d’appareil Windows associé à cet CDC objet.
CDC::DeleteTempMap Appelé par le gestionnaire d’inactivité CWinApp pour supprimer tout objet temporaire CDC créé par FromHandle. Détache également le contexte de l’appareil.
CDC::Detach Détache le contexte de l’appareil Windows de cet CDC objet.
CDC::DPtoHIMETRIC Convertit les unités d’appareil en HIMETRIC unités.
CDC::DPtoLP Convertit les unités d’appareil en unités logiques.
CDC::Draw3dRect Dessine un rectangle à trois dimensions.
CDC::DrawDragRect Efface et redessine un rectangle au fur et à mesure qu’il est déplacé.
CDC::DrawEdge Dessine les bords d’un rectangle.
CDC::DrawEscape Accède aux fonctionnalités de dessin d’un affichage vidéo qui ne sont pas directement disponibles via l’interface GDI (Graphics Device Interface).
CDC::DrawFocusRect Dessine un rectangle dans le style utilisé pour indiquer le focus.
CDC::DrawFrameControl Dessinez un contrôle frame.
CDC::DrawIcon Dessine une icône.
CDC::DrawState Affiche une image et applique un effet visuel pour indiquer un état.
CDC::DrawText Dessine le texte mis en forme dans le rectangle spécifié.
CDC::DrawTextEx Dessine le texte mis en forme dans le rectangle spécifié à l’aide d’autres formats.
CDC::Ellipse Dessine une ellipse.
CDC::EndDoc Termine un travail d’impression démarré par la StartDoc fonction membre.
CDC::EndPage Informe le pilote de périphérique qu’une page se termine.
CDC::EndPath Ferme un crochet de chemin et sélectionne le chemin défini par le crochet dans le contexte de l’appareil.
CDC::EnumObjects Énumère les stylos et pinceaux disponibles dans un contexte d’appareil.
CDC::Escape Permet aux applications d’accéder aux installations qui ne sont pas directement disponibles à partir d’un appareil particulier via GDI. Autorise également l’accès aux fonctions d’échappement Windows. Les appels d’échappement effectués par une application sont traduits et envoyés au pilote de périphérique.
CDC::ExcludeClipRect Crée une région de découpage qui se compose de la région de découpage existante moins le rectangle spécifié.
CDC::ExcludeUpdateRgn Empêche le dessin dans des zones non valides d’une fenêtre en excluant une région mise à jour dans la fenêtre d’une région de découpage.
CDC::ExtFloodFill Remplit une zone avec le pinceau actuel. Offre plus de flexibilité que la CDC::FloodFill fonction membre.
CDC::ExtTextOut Écrit une chaîne de caractères dans une région rectangulaire à l’aide de la police actuellement sélectionnée.
CDC::FillPath Ferme toutes les figures ouvertes dans le chemin actuel et remplit l’intérieur du chemin à l’aide du mode de remplissage actuel du pinceau et du polygone.
CDC::FillRect Remplit un rectangle donné à l’aide d’un pinceau spécifique.
CDC::FillRgn Remplit une région spécifique avec le pinceau spécifié.
CDC::FillSolidRect Remplit un rectangle avec une couleur unie.
CDC::FlattenPath Transforme toutes les courbes du chemin sélectionné dans le contexte actuel de l’appareil et transforme chaque courbe en une séquence de lignes.
CDC::FloodFill Remplit une zone avec le pinceau actuel.
CDC::FrameRect Dessine une bordure autour d’un rectangle.
CDC::FrameRgn Dessine une bordure autour d’une région spécifique à l’aide d’un pinceau.
CDC::FromHandle Retourne un pointeur vers un CDC objet lorsqu’un handle est donné à un contexte d’appareil. Si un CDC objet n’est pas attaché au handle, un objet temporaire CDC est créé et attaché.
CDC::GetArcDirection Retourne la direction actuelle de l’arc pour le contexte de l’appareil.
CDC::GetAspectRatioFilter Récupère le paramètre du filtre de rapport d’aspect actuel.
CDC::GetBkColor Récupère la couleur d’arrière-plan actuelle.
CDC::GetBkMode Récupère le mode d’arrière-plan.
CDC::GetBoundsRect Retourne le rectangle englobant cumulé actuel pour le contexte d’appareil spécifié.
CDC::GetBrushOrg Récupère l’origine du pinceau actuel.
CDC::GetCharABCWidths Récupère les largeurs, en unités logiques, de caractères consécutifs dans une plage donnée à partir de la police actuelle.
CDC::GetCharABCWidthsI Récupère les largeurs, en unités logiques, des index de glyphe consécutifs dans une plage spécifiée à partir de la police TrueType actuelle.
CDC::GetCharacterPlacement Récupère différents types d’informations sur une chaîne de caractères.
CDC::GetCharWidth Récupère les largeurs fractionnaires de caractères consécutifs dans une plage donnée à partir de la police actuelle.
CDC::GetCharWidthI Récupère les largeurs, en coordonnées logiques, des index de glyphe consécutifs dans une plage spécifiée à partir de la police actuelle.
CDC::GetClipBox Récupère les dimensions du rectangle englobant le plus serré autour de la limite de découpage actuelle.
CDC::GetColorAdjustment Récupère les valeurs d’ajustement des couleurs pour le contexte de l’appareil.
CDC::GetCurrentBitmap Retourne un pointeur vers l’objet actuellement sélectionné CBitmap .
CDC::GetCurrentBrush Retourne un pointeur vers l’objet actuellement sélectionné CBrush .
CDC::GetCurrentFont Retourne un pointeur vers l’objet actuellement sélectionné CFont .
CDC::GetCurrentPalette Retourne un pointeur vers l’objet actuellement sélectionné CPalette .
CDC::GetCurrentPen Retourne un pointeur vers l’objet actuellement sélectionné CPen .
CDC::GetCurrentPosition Récupère la position actuelle du stylet (en coordonnées logiques).
CDC::GetDCBrushColor Récupère la couleur actuelle du pinceau.
CDC::GetDCPenColor Récupère la couleur actuelle du stylet.
CDC::GetDeviceCaps Récupère un type spécifié d’informations spécifiques à l’appareil sur les fonctionnalités d’un appareil d’affichage donné.
CDC::GetFontData Récupère les informations de métrique de police à partir d’un fichier de police évolutif. Les informations à récupérer sont identifiées en spécifiant un décalage dans le fichier de police et la longueur des informations à retourner.
CDC::GetFontLanguageInfo Retourne des informations sur la police actuellement sélectionnée pour le contexte d’affichage spécifié.
CDC::GetGlyphOutline Récupère la courbe de contour ou la bitmap d’un caractère de plan dans la police actuelle.
CDC::GetGraphicsMode Récupère le mode graphique actuel pour le contexte d’appareil spécifié.
CDC::GetHalftoneBrush Récupère un pinceau demi-teinte.
CDC::GetKerningPairs Récupère les paires de crénages de caractères pour la police actuellement sélectionnée dans le contexte d’appareil spécifié.
CDC::GetLayout Récupère la disposition d’un contexte d’appareil (DC). La disposition peut être de gauche à droite (par défaut) ou de droite à gauche (mise en miroir).
CDC::GetMapMode Récupère le mode de mappage actuel.
CDC::GetMiterLimit Retourne la limite de mitreur pour le contexte de l’appareil.
CDC::GetNearestColor Récupère la couleur logique la plus proche d’une couleur logique spécifiée que l’appareil donné peut représenter.
CDC::GetOutlineTextMetrics Récupère les informations de métrique de police pour les polices TrueType.
CDC::GetOutputCharWidth Récupère les largeurs des caractères individuels dans un groupe consécutif de caractères de la police actuelle à l’aide du contexte de l’appareil de sortie.
CDC::GetOutputTabbedTextExtent Calcule la largeur et la hauteur d’une chaîne de caractères sur le contexte de l’appareil de sortie.
CDC::GetOutputTextExtent Calcule la largeur et la hauteur d’une ligne de texte sur le contexte de l’appareil de sortie à l’aide de la police actuelle pour déterminer les dimensions.
CDC::GetOutputTextMetrics Récupère les métriques de la police actuelle à partir du contexte de l’appareil de sortie.
CDC::GetPath Récupère les coordonnées définissant les points de terminaison des lignes et les points de contrôle des courbes trouvés dans le chemin d’accès sélectionné dans le contexte de l’appareil.
CDC::GetPixel Récupère la valeur de couleur RVB du pixel au point spécifié.
CDC::GetPolyFillMode Récupère le mode de remplissage de polygone actuel.
CDC::GetROP2 Récupère le mode de dessin actuel.
CDC::GetSafeHdc Retourne CDC::m_hDC, le contexte de l’appareil de sortie.
CDC::GetStretchBltMode Récupère le mode d’étirement bitmap actuel.
CDC::GetTabbedTextExtent Calcule la largeur et la hauteur d’une chaîne de caractères sur le contexte de l’appareil d’attribut.
CDC::GetTextAlign Récupère les indicateurs d’alignement du texte.
CDC::GetTextCharacterExtra Récupère le paramètre actuel de l’espacement intercharacteur.
CDC::GetTextColor Récupère la couleur de texte actuelle.
CDC::GetTextExtent Calcule la largeur et la hauteur d’une ligne de texte sur le contexte de l’appareil d’attribut à l’aide de la police actuelle pour déterminer les dimensions.
CDC::GetTextExtentExPointI Récupère le nombre de caractères d’une chaîne spécifiée qui s’intègre dans un espace spécifié et remplit un tableau avec l’étendue du texte pour chacun de ces caractères.
CDC::GetTextExtentPointI Récupère la largeur et la hauteur du tableau spécifié d’indices de glyphe.
CDC::GetTextFace Copie le nom de police de la police actuelle dans une mémoire tampon sous forme de chaîne terminée par null.
CDC::GetTextMetrics Récupère les métriques de la police actuelle à partir du contexte de l’appareil d’attribut.
CDC::GetViewportExt Récupère les étendues x et y de la fenêtre d’affichage.
CDC::GetViewportOrg Récupère les coordonnées x et y de l’origine de la fenêtre d’affichage.
CDC::GetWindow Retourne la fenêtre associée au contexte de l’appareil d’affichage.
CDC::GetWindowExt Récupère les étendues x et y de la fenêtre associée.
CDC::GetWindowOrg Récupère les coordonnées x et y de l’origine de la fenêtre associée.
CDC::GetWorldTransform Récupère l’espace mondial actuel à la transformation de l’espace de page.
CDC::GradientFill Remplit des structures rectangle et triangle avec une couleur gradante.
CDC::GrayString Dessine le texte grisé (grisé) à l’emplacement donné.
CDC::HIMETRICtoDP Convertit les unités HIMETRIC en unités d’appareil.
CDC::HIMETRICtoLP Convertit les unités HIMETRIC en unités logiques.
CDC::IntersectClipRect Crée une zone de découpage en formant l’intersection de la région actuelle et d’un rectangle.
CDC::InvertRect Inverse le contenu d’un rectangle.
CDC::InvertRgn Inverse les couleurs d’une région.
CDC::IsPrinting Détermine si le contexte de l’appareil est utilisé pour l’impression.
CDC::LineTo Dessine une ligne de la position actuelle jusqu’à, mais pas compris, un point.
CDC::LPtoDP Convertit les unités logiques en unités d’appareil.
CDC::LPtoHIMETRIC Convertit les unités logiques en unités HIMETRIC.
CDC::MaskBlt Combine les données de couleur pour les bitmaps source et de destination à l’aide de l’opération de masque et de raster donnée.
CDC::ModifyWorldTransform Modifie la transformation mondiale d’un contexte d’appareil à l’aide du mode spécifié.
CDC::MoveTo Déplace la position actuelle.
CDC::OffsetClipRgn Déplace la région de découpage de l’appareil donné.
CDC::OffsetViewportOrg Modifie l’origine de la fenêtre d’affichage par rapport aux coordonnées de l’origine de la fenêtre d’affichage actuelle.
CDC::OffsetWindowOrg Modifie l’origine de la fenêtre par rapport aux coordonnées de l’origine de la fenêtre active.
CDC::PaintRgn Remplit une région avec le pinceau sélectionné.
CDC::PatBlt Crée un modèle de bits.
CDC::Pie Dessine un coin en forme de tarte.
CDC::PlayMetaFile Lit le contenu du métafichier spécifié sur l’appareil donné. La version améliorée des affichages de PlayMetaFile l’image stockée dans le métafichier de format amélioré donné. Le métafichier peut être lu n’importe quel nombre de fois.
CDC::PlgBlt Effectue un transfert de bloc de bits des bits de données de couleur du rectangle spécifié dans le contexte de l’appareil source vers le parallélisme spécifié dans le contexte de l’appareil donné.
CDC::PolyBezier Dessine une ou plusieurs splines Bzier. La position actuelle n’est pas utilisée ou mise à jour.
CDC::PolyBezierTo Dessine une ou plusieurs splines Bzier et déplace la position actuelle vers le point de fin du dernier spline Bzier.
CDC::PolyDraw Dessine un ensemble de segments de ligne et de splines Bzier. Cette fonction met à jour la position actuelle.
CDC::Polygon Dessine un polygone composé de deux points ou plus (sommets) connectés par des lignes.
CDC::Polyline Dessine un ensemble de segments de ligne qui connectent les points spécifiés.
CDC::PolylineTo Dessine une ou plusieurs lignes droites et déplace la position actuelle vers le point de fin de la dernière ligne.
CDC::PolyPolygon Crée deux polygones ou plus remplis à l’aide du mode de remplissage de polygones actuel. Les polygones peuvent être disjoints ou ils peuvent se chevaucher.
CDC::PolyPolyline Dessine plusieurs séries de segments de ligne connectés. La position actuelle n’est pas utilisée ou mise à jour par cette fonction.
CDC::PtVisible Spécifie si le point donné se trouve dans la région de découpage.
CDC::RealizePalette Mappe les entrées de palette dans la palette logique actuelle à la palette système.
CDC::Rectangle Dessine un rectangle à l’aide du stylet actuel et le remplit à l’aide du pinceau actuel.
CDC::RectVisible Détermine si une partie du rectangle donné se trouve dans la région de découpage.
CDC::ReleaseAttribDC m_hAttribDCLibère , le contexte de l’appareil d’attribut.
CDC::ReleaseOutputDC m_hDCLibère , le contexte de l’appareil de sortie.
CDC::ResetDC Met à jour le contexte de l’appareil m_hAttribDC .
CDC::RestoreDC Restaure le contexte de l’appareil dans un état précédent enregistré avec SaveDC.
CDC::RoundRect Dessine un rectangle avec des angles arrondis à l’aide du stylet actuel et rempli à l’aide du pinceau actuel.
CDC::SaveDC Enregistre l’état actuel du contexte de l’appareil.
CDC::ScaleViewportExt Modifie l’étendue de la fenêtre d’affichage par rapport aux valeurs actuelles.
CDC::ScaleWindowExt Modifie les étendues de fenêtre par rapport aux valeurs actuelles.
CDC::ScrollDC Fait défiler un rectangle de bits horizontalement et verticalement.
CDC::SelectClipPath Sélectionne le chemin actuel en tant que région de découpage pour le contexte de l’appareil, en combinant la nouvelle région avec n’importe quelle région de découpage existante à l’aide du mode spécifié.
CDC::SelectClipRgn Combine la région donnée avec la région de découpage actuelle à l’aide du mode spécifié.
CDC::SelectObject Sélectionne un objet de dessin GDI tel qu’un stylet.
CDC::SelectPalette Sélectionne la palette logique.
CDC::SelectStockObject Sélectionne l’un des stylos, pinceaux ou polices de stock prédéfinis fournis par Windows.
CDC::SetAbortProc Définit une fonction de rappel fournie par le programmeur que Windows appelle si un travail d’impression doit être abandonné.
CDC::SetArcDirection Définit la direction du dessin à utiliser pour les fonctions arc et rectangle.
CDC::SetAttribDC Définit m_hAttribDC, le contexte de l’appareil d’attribut.
CDC::SetBkColor Définit la couleur d’arrière-plan actuelle.
CDC::SetBkMode Définit le mode d’arrière-plan.
CDC::SetBoundsRect Contrôle l’accumulation d’informations de rectangle englobant pour le contexte d’appareil spécifié.
CDC::SetBrushOrg Spécifie l’origine du pinceau suivant sélectionné dans un contexte d’appareil.
CDC::SetColorAdjustment Définit les valeurs d’ajustement des couleurs pour le contexte de l’appareil à l’aide des valeurs spécifiées.
CDC::SetDCBrushColor Définit la couleur actuelle du pinceau.
CDC::SetDCPenColor Définit la couleur de stylet actuelle.
CDC::SetGraphicsMode Définit le mode graphique actuel pour le contexte d’appareil spécifié.
CDC::SetLayout Modifie la disposition d’un contexte d’appareil (DC).
CDC::SetMapMode Définit le mode de mappage actuel.
CDC::SetMapperFlags Modifie l’algorithme utilisé par le mappeur de polices lorsqu’il mappe les polices logiques aux polices physiques.
CDC::SetMiterLimit Définit la limite pour la longueur des jointures mitreuse pour le contexte de l’appareil.
CDC::SetOutputDC Définit m_hDCle contexte de l’appareil de sortie.
CDC::SetPixel Définit le pixel au point spécifié sur l’approximation la plus proche de la couleur spécifiée.
CDC::SetPixelV Définit le pixel aux coordonnées spécifiées à l’approximation la plus proche de la couleur spécifiée. SetPixelV est plus rapide que SetPixel parce qu’il n’a pas besoin de retourner la valeur de couleur du point peint.
CDC::SetPolyFillMode Définit le mode de remplissage des polygones.
CDC::SetROP2 Définit le mode de dessin actuel.
CDC::SetStretchBltMode Définit le mode d’étirement bitmap.
CDC::SetTextAlign Définit les indicateurs d’alignement du texte.
CDC::SetTextCharacterExtra Définit la quantité d’espacement intercharacteur.
CDC::SetTextColor Définit la couleur du texte.
CDC::SetTextJustification Ajoute de l’espace aux caractères de saut dans une chaîne.
CDC::SetViewportExt Définit les étendues x et y de la fenêtre d’affichage.
CDC::SetViewportOrg Définit l’origine de la fenêtre d’affichage.
CDC::SetWindowExt Définit les étendues x et y de la fenêtre associée.
CDC::SetWindowOrg Définit l’origine de la fenêtre du contexte de l’appareil.
CDC::SetWorldTransform Définit l’espace mondial actuel sur la transformation de l’espace de page.
CDC::StartDoc Informe le pilote de périphérique qu’une nouvelle tâche d’impression démarre.
CDC::StartPage Informe le pilote de périphérique qu’une nouvelle page démarre.
CDC::StretchBlt Déplace une bitmap d’un rectangle source et d’un appareil dans un rectangle de destination, étirement ou compression de l’image bitmap si nécessaire pour ajuster les dimensions du rectangle de destination.
CDC::StrokeAndFillPath Ferme toutes les figures ouvertes dans un chemin, frappe le contour du chemin à l’aide du stylet actuel et remplit son intérieur à l’aide du pinceau actuel.
CDC::StrokePath Affiche le chemin spécifié à l’aide du stylet actuel.
CDC::TabbedTextOut Écrit une chaîne de caractères à un emplacement spécifié, en développant les onglets dans les valeurs spécifiées dans un tableau de positions de taquet de tabulation.
CDC::TextOut Écrit une chaîne de caractères à un emplacement spécifié à l’aide de la police actuellement sélectionnée.
CDC::TransparentBlt Transfère un bloc de bits de données de couleur du contexte d’appareil source spécifié dans un contexte d’appareil de destination, rendant une couleur spécifiée transparente dans le transfert.
CDC::UpdateColors Met à jour la zone cliente du contexte de l’appareil en faisant correspondre les couleurs actuelles de la zone cliente à la palette système en pixels par pixels.
CDC::WidenPath Redéfinit le chemin actuel comme zone qui serait peinte si le chemin d’accès a été tracé à l’aide du stylet actuellement sélectionné dans le contexte de l’appareil.

Opérateurs publics

Nom Description
CDC::operator HDC Récupère le handle du contexte de l’appareil.

Membres de données publics

Nom Description
CDC::m_hAttribDC Contexte d’attribut-appareil utilisé par cet CDC objet.
CDC::m_hDC Contexte d’appareil de sortie utilisé par cet CDC objet.

Notes

L’objet CDC fournit des fonctions membres pour l’utilisation d’un contexte d’appareil, telles qu’un affichage ou une imprimante, et les membres pour travailler avec un contexte d’affichage associé à la zone cliente d’une fenêtre.

Effectuez tout le dessin à travers les fonctions membres d’un CDC objet. La classe fournit des fonctions membres pour les opérations de contexte d’appareil, l’utilisation d’outils de dessin, la sélection d’objets GDI (Type Safe Device Interface) et l’utilisation de couleurs et de palettes. Il fournit également des fonctions membres pour obtenir et définir des attributs de dessin, le mappage, l’utilisation de la fenêtre, l’extension de la fenêtre, la conversion des coordonnées, l’utilisation de régions, de découpage, de traits de dessin et de dessin de formes simples, de points de suspension et de polygones. Les fonctions membres sont également fournies pour dessiner du texte, utiliser des polices, utiliser des échappements d’imprimante, faire défiler et lire des métafichiers.

Pour utiliser un CDC objet, construisez-le, puis appelez ses fonctions membres qui utilisent des contextes d’appareil en parallèle.

Remarque

Sous Windows 95/98, toutes les coordonnées de l’écran sont limitées à 16 bits. Par conséquent, une int CDC fonction membre transmise doit être comprise entre -32768 et 32767.

Pour des utilisations spécifiques, la bibliothèque de classes Microsoft Foundation fournit plusieurs classes dérivées de CDC . CPaintDC encapsule les appels à BeginPaint et EndPaint. CClientDC gère un contexte d’affichage associé à la zone cliente d’une fenêtre. CWindowDC gère un contexte d’affichage associé à une fenêtre entière, y compris son cadre et ses contrôles. CMetaFileDC associe un contexte d’appareil à un métafichier.

CDC fournit deux fonctions membres et GetLayout SetLayout, pour inverser la disposition d’un contexte d’appareil, qui n’hérite pas de sa disposition d’une fenêtre. Une telle orientation de droite à gauche est nécessaire pour les applications écrites pour les cultures, telles que l’arabe ou l’hébreu, où la disposition des caractères n’est pas la norme européenne.

CDC contient deux contextes d’appareil et m_hDC m_hAttribDC, lors de la création d’un CDC objet, font référence au même appareil. CDC dirige tous les appels GDI de sortie vers m_hDC et la plupart des appels GDI d’attribut vers m_hAttribDC. (Un exemple d’appel d’attribut est GetTextColor, tandis qu’il SetTextColor s’agit d’un appel de sortie.)

Par exemple, l’infrastructure utilise ces deux contextes d’appareil pour implémenter un CMetaFileDC objet qui envoie la sortie à un métafichier lors de la lecture d’attributs à partir d’un appareil physique. L’aperçu avant impression est implémenté dans l’infrastructure de manière similaire. Vous pouvez également utiliser les deux contextes d’appareil de manière similaire dans votre code spécifique à l’application.

Il existe des moments où vous pouvez avoir besoin d’informations de métrique de texte à partir des contextes de l’appareil et m_hAttribDC des m_hDC contextes d’appareil. Les paires de fonctions suivantes fournissent cette fonctionnalité :

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

Pour plus d’informations sur CDC, consultez Contextes de l’appareil.

Hiérarchie d'héritage

CObject

CDC

Spécifications

En-tête : afxwin.h

CDC::AbortDoc

Met fin au travail d’impression actuel et efface tout ce que l’application a écrit sur l’appareil depuis le dernier appel à la StartDoc fonction membre.

int AbortDoc();

Valeur de retour

Valeur supérieure ou égale à 0 si elle réussit ou une valeur négative si une erreur s’est produite. La liste suivante présente les valeurs d’erreur courantes et leurs significations :

  • SP_ERROR Erreur générale.

  • SP_OUTOFDISK L’espace disque insuffisant est actuellement disponible pour lepooling, et aucun espace supplémentaire ne sera disponible.

  • SP_OUTOFMEMORY La mémoire insuffisante est disponible pour lepooling.

  • SP_USERABORT L’utilisateur a terminé le travail via le Gestionnaire d’impression.

Notes

Cette fonction membre remplace l’échappement de l’imprimante ABORTDOC .

AbortDoc doit être utilisé pour terminer les opérations suivantes :

  • Opérations d’impression qui ne spécifient pas de fonction d’abandon à l’aide SetAbortProcde .

  • Opérations d’impression qui n’ont pas encore atteint leur premier NEWFRAME appel ou NEXTBAND appel d’échappement.

Si une application rencontre une erreur d’impression ou une opération d’impression annulée, elle ne doit pas tenter de mettre fin à l’opération à l’aide des fonctions membres ou AbortDoc de la EndDoc classe CDC. GDI met automatiquement fin à l’opération avant de retourner la valeur d’erreur.

Si l’application affiche une boîte de dialogue pour permettre à l’utilisateur d’annuler l’opération d’impression, elle doit appeler AbortDoc avant de détruire la boîte de dialogue.

Si le Gestionnaire d’impression a été utilisé pour démarrer la tâche d’impression, l’appel AbortDoc efface l’intégralité du travail de spoulage : l’imprimante ne reçoit rien. Si le Gestionnaire d’impression n’a pas été utilisé pour démarrer le travail d’impression, les données ont peut-être été envoyées à l’imprimante avant AbortDoc d’être appelées. Dans ce cas, le pilote d’imprimante aurait réinitialisé l’imprimante (le cas échéant) et fermé le travail d’impression.

Exemple

Consultez l’exemple pour CDC::StartDoc.

CDC::AbortPath

Ferme et ignore tous les chemins d’accès dans le contexte de l’appareil.

BOOL AbortPath();

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

S’il existe un crochet de chemin ouvert dans le contexte de l’appareil, le crochet de chemin est fermé et le chemin est ignoré. S’il existe un chemin fermé dans le contexte de l’appareil, le chemin est ignoré.

CDC::AddMetaFileComment

Copie le commentaire d’une mémoire tampon dans un métafichier de format amélioré spécifié.

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

Paramètres

nDataSize
Spécifie la longueur de la mémoire tampon de commentaire, en octets.

pCommentData
Pointe vers la mémoire tampon qui contient le commentaire.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Un commentaire peut inclure des informations privées , par exemple la source de l’image et la date à laquelle elle a été créée. Un commentaire doit commencer par une signature d’application, suivi des données. Les commentaires ne doivent pas contenir de données spécifiques à la position. Les données spécifiques à la position spécifient l’emplacement d’un enregistrement et ne doivent pas être incluses, car un métafichier peut être incorporé dans un autre métafichier. Cette fonction ne peut être utilisée qu’avec des métafichiers améliorés.

CDC::AlphaBlend

Appelez cette fonction membre pour afficher des bitmaps qui ont des pixels transparents ou semi-transparents.

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

Paramètres

xDest
Spécifie la coordonnée x, en unités logiques, du coin supérieur gauche du rectangle de destination.

yDest
Spécifie la coordonnée y, en unités logiques, du coin supérieur gauche du rectangle de destination.

nDestWidth
Spécifie la largeur, en unités logiques, du rectangle de destination.

nDestHeight
Spécifie la hauteur, en unités logiques, du rectangle de destination.

pSrcDC
Pointeur vers le contexte de l’appareil source.

xSrc
Spécifie la coordonnée x, en unités logiques, du coin supérieur gauche du rectangle source.

ySrc
Spécifie la coordonnée y, en unités logiques, du coin supérieur gauche du rectangle source.

nSrcWidth
Spécifie la largeur, en unités logiques, du rectangle source.

nSrcHeight
Spécifie la hauteur, en unités logiques, du rectangle source.

blend
Spécifie une BLENDFUNCTION structure.

Valeur de retour

TRUE en cas de réussite ; sinon, FALSE.

Notes

Pour plus d’informations, consultez AlphaBlend le Kit de développement logiciel (SDK) Windows.

CDC::AngleArc

Dessine un segment de trait et un arc.

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

Paramètres

x
Spécifie la coordonnée x logique du centre du cercle.

y
Spécifie la coordonnée y logique du centre du cercle.

nRadius
Spécifie le rayon du cercle en unités logiques. Cette valeur doit être positive.

fStartAngle
Spécifie l’angle de départ en degrés par rapport à l’axe x.

fSweepAngle
Spécifie l’angle de balayage en degrés par rapport à l’angle de départ.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Le segment de trait est dessiné de la position actuelle au début de l’arc. L’arc est dessiné le long du périmètre d’un cercle avec le rayon et le centre donnés. La longueur de l’arc est définie par le début et les angles de balayage donnés.

AngleArc déplace la position actuelle vers le point de fin de l’arc. L’arc dessiné par cette fonction peut sembler elliptique, en fonction de la transformation actuelle et du mode de mappage. Avant de dessiner l’arc, cette fonction dessine le segment de trait de la position actuelle jusqu’au début de l’arc. L’arc est dessiné en construisant un cercle imaginaire avec le rayon spécifié autour du point central spécifié. Le point de départ de l’arc est déterminé en mesurant le sens inverse à partir de l’axe x du cercle par le nombre de degrés dans l’angle de début. Le point de terminaison se trouve de la même façon en mesurant le point de départ à partir du point de départ par le nombre de degrés dans l’angle de balayage.

Si l’angle de balayage est supérieur à 360 degrés, l’arc est balayé plusieurs fois. Cette fonction dessine des lignes à l’aide du stylet actuel. La figure n’est pas remplie.

CDC::Arc

Dessine un arc elliptique.

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

Paramètres

x1
Spécifie la coordonnée x du coin supérieur gauche du rectangle englobant (en unités logiques).

y1
Spécifie la coordonnée y du coin supérieur gauche du rectangle englobant (en unités logiques).

x2
Spécifie la coordonnée x du coin inférieur droit du rectangle englobant (en unités logiques).

y2
Spécifie la coordonnée y du coin inférieur droit du rectangle englobant (en unités logiques).

x3
Spécifie la coordonnée x du point qui définit le point de départ de l’arc (en unités logiques). Ce point n’a pas à mentir exactement sur l’arc.

y3
Spécifie la coordonnée y du point qui définit le point de départ de l’arc (en unités logiques). Ce point n’a pas à mentir exactement sur l’arc.

x4
Spécifie la coordonnée x du point qui définit le point de terminaison de l’arc (en unités logiques). Ce point n’a pas à mentir exactement sur l’arc.

y4
Spécifie la coordonnée y du point qui définit le point de terminaison de l’arc (en unités logiques). Ce point n’a pas à mentir exactement sur l’arc.

lpRect
Spécifie le rectangle englobant (en unités logiques). Vous pouvez passer un LPRECT ou un CRect objet pour ce paramètre.

ptStart
Spécifie les coordonnées x et y du point qui définit le point de départ de l’arc (en unités logiques). Ce point n’a pas à mentir exactement sur l’arc. Vous pouvez passer une POINT structure ou un CPoint objet pour ce paramètre.

ptEnd
Spécifie les coordonnées x et y du point qui définit le point de fin de l’arc (en unités logiques). Ce point n’a pas à mentir exactement sur l’arc. Vous pouvez passer une POINT structure ou un CPoint objet pour ce paramètre.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

L’arc dessiné à l’aide de la fonction est un segment de l’ellipse défini par le rectangle englobant spécifié.

Le point de départ réel de l’arc est le point auquel un rayon dessiné à partir du centre du rectangle englobant à travers le point de départ spécifié croise l’ellipse. Le point de fin réel de l’arc est le point auquel un rayon dessiné à partir du centre du rectangle englobant à travers le point de fin spécifié croise l’ellipse. L’arc est dessiné dans un sens inverse. Étant donné qu’un arc n’est pas une figure fermée, il n’est pas rempli. La largeur et la hauteur du rectangle doivent être supérieures à 2 unités et inférieures à 32 767 unités.

Exemple

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

Dessine un arc elliptique.

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

Paramètres

x1
Spécifie la coordonnée x du coin supérieur gauche du rectangle englobant (en unités logiques).

y1
Spécifie la coordonnée y du coin supérieur gauche du rectangle englobant (en unités logiques).

x2
Spécifie la coordonnée x du coin inférieur droit du rectangle englobant (en unités logiques).

y2
Spécifie la coordonnée y du coin inférieur droit du rectangle englobant (en unités logiques).

x3
Spécifie la coordonnée x du point qui définit le point de départ de l’arc (en unités logiques). Ce point n’a pas à mentir exactement sur l’arc.

y3
Spécifie la coordonnée y du point qui définit le point de départ de l’arc (en unités logiques). Ce point n’a pas à mentir exactement sur l’arc.

x4
Spécifie la coordonnée x du point qui définit le point de terminaison de l’arc (en unités logiques). Ce point n’a pas à mentir exactement sur l’arc.

y4
Spécifie la coordonnée y du point qui définit le point de terminaison de l’arc (en unités logiques). Ce point n’a pas à mentir exactement sur l’arc.

lpRect
Spécifie le rectangle englobant (en unités logiques). Vous pouvez passer un pointeur vers une RECT structure de données ou un CRect objet pour ce paramètre.

ptStart
Spécifie les coordonnées x et y du point qui définit le point de départ de l’arc (en unités logiques). Ce point n’a pas à mentir exactement sur l’arc. Vous pouvez passer une POINT structure de données ou un CPoint objet pour ce paramètre.

ptEnd
Spécifie les coordonnées x et y du point qui définit le point de fin de l’arc (en unités logiques). Ce point n’a pas à mentir exactement sur l’arc. Vous pouvez passer une POINT structure de données ou un CPoint objet pour ce paramètre.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Cette fonction est similaire à CDC::Arc, sauf que la position actuelle est mise à jour. Les points ( x1, y1) et ( x2, y2) spécifient le rectangle englobant. Un ellipse formé par le rectangle englobant donné définit la courbe de l’arc. L’arc étend le sens inverse (direction de l’arc par défaut) à partir du point où il croise la ligne radiale du centre du rectangle englobant à ( *x3*, y3). L’arc se termine à l’endroit où il croise la ligne radiale du centre du rectangle englobant à ( x4, y4). Si le point de départ et le point de fin sont identiques, un ellipse complet est dessiné.

Une ligne est dessinée de la position actuelle jusqu’au point de départ de l’arc. Si aucune erreur ne se produit, la position actuelle est définie sur le point de fin de l’arc. L’arc est dessiné à l’aide du stylet actuel ; ce n’est pas rempli.

CDC::Attach

Utilisez cette fonction membre pour attacher un hDC objet CDC .

BOOL Attach(HDC hDC);

Paramètres

hDC
Contexte d’appareil Windows.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Il hDC est stocké dans les deux m_hDC, le contexte de l’appareil de sortie et dans m_hAttribDC, le contexte de l’appareil d’attribut.

CDC::BeginPath

Ouvre un crochet de chemin dans le contexte de l’appareil.

BOOL BeginPath();

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Une fois qu’un crochet de chemin d’accès est ouvert, une application peut commencer à appeler des fonctions de dessin GDI pour définir les points qui se trouvent dans le chemin. Une application peut fermer un crochet de chemin ouvert en appelant la EndPath fonction membre. Lorsqu’une application appelle BeginPath, tous les chemins précédents sont ignorés.

Consultez BeginPath le Kit de développement logiciel (SDK) Windows pour obtenir la liste des fonctions de dessin qui définissent des points dans un chemin d’accès.

Exemple

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

Copie une bitmap du contexte de l’appareil source dans ce contexte d’appareil actuel.

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

Paramètres

x
Spécifie la coordonnée x logique du coin supérieur gauche du rectangle de destination.

y
Spécifie la coordonnée y logique du coin supérieur gauche du rectangle de destination.

nWidth
Spécifie la largeur (en unités logiques) du rectangle de destination et de la bitmap source.

nHeight
Spécifie la hauteur (en unités logiques) du rectangle de destination et de la bitmap source.

pSrcDC
Pointeur vers un CDC objet qui identifie le contexte de l’appareil à partir duquel la bitmap sera copiée. Il doit s’agir NULL d’une dwRop opération raster qui n’inclut pas de source.

xSrc
Spécifie la coordonnée x logique du coin supérieur gauche de la bitmap source.

ySrc
Spécifie la coordonnée y logique du coin supérieur gauche de la bitmap source.

dwRop
Spécifie l'opération de rastérisation à effectuer. Les codes d’opération raster définissent la façon dont le GDI combine les couleurs dans les opérations de sortie qui impliquent un pinceau actuel, une image bitmap source possible et une bitmap de destination. Consultez BitBlt le Kit de développement logiciel (SDK) Windows pour obtenir la liste des codes d’opération raster et dwRop leurs descriptions

Pour obtenir la liste complète des codes d’opération raster, consultez About Raster Operation Codes in the Windows SDK.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

L’application peut aligner les fenêtres ou les zones clientes sur les limites d’octets pour vous assurer que les BitBlt opérations se produisent sur des rectangles alignés sur des octets. (Définissez les indicateurs ou CS_BYTEALIGNCLIENT les CS_BYTEALIGNWINDOW indicateurs lorsque vous inscrivez les classes de fenêtre.)

BitBlt les opérations sur les rectangles alignés sur octets sont considérablement plus rapides que BitBlt les opérations sur les rectangles qui ne sont pas alignés sur des octets. Si vous souhaitez spécifier des styles de classe tels que l’alignement d’octets pour votre propre contexte d’appareil, vous devez inscrire une classe de fenêtre plutôt que de vous appuyer sur les classes Microsoft Foundation pour vous. Utilisez la fonction AfxRegisterWndClassglobale .

GDI transforme nWidth et nHeight, une fois à l’aide du contexte de l’appareil de destination, et une fois à l’aide du contexte de l’appareil source. Si les étendues résultantes ne correspondent pas, GDI utilise la fonction Windows StretchBlt pour compresser ou étendre la bitmap source si nécessaire.

Si les bitmaps de destination, de source et de modèle n’ont pas le même format de couleur, la BitBlt fonction convertit les bitmaps source et motif pour qu’elles correspondent à la destination. Les couleurs de premier plan et d’arrière-plan de la bitmap de destination sont utilisées dans la conversion.

Lorsque la BitBlt fonction convertit une bitmap monochrome en couleur, elle définit les bits blancs (1) en couleur d’arrière-plan et les bits noirs (0) en couleur de premier plan. Les couleurs de premier plan et d’arrière-plan du contexte de l’appareil de destination sont utilisées. Pour convertir la couleur en monochrome, BitBlt définit les pixels qui correspondent à la couleur d’arrière-plan en blanc et définit tous les autres pixels en noir. BitBlt utilise les couleurs de premier plan et d’arrière-plan du contexte de l’appareil de couleur pour passer de la couleur au monochrome.

Tous les contextes d’appareil ne prennent pas en charge BitBlt. Pour vérifier si un contexte d’appareil donné prend en charge BitBlt, utilisez la GetDeviceCaps fonction membre et spécifiez l’index RASTERCAPS.

Exemple

Consultez l’exemple pour CDC::CreateCompatibleDC.

CDC::CDC

Construit un objet CDC.

CDC();

CDC::Chord

Dessine une corde (une figure fermée délimitée par l’intersection d’un ellipse et d’un segment de trait).

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

Paramètres

x1
Spécifie la coordonnée x du coin supérieur gauche du rectangle englobant de l’accord (en unités logiques).

y1
Spécifie la coordonnée y du coin supérieur gauche du rectangle englobant de l’accord (en unités logiques).

x2
Spécifie la coordonnée x du coin inférieur droit du rectangle englobant de l’accord (en unités logiques).

y2
Spécifie la coordonnée y du coin inférieur droit du rectangle englobant de l’accord (en unités logiques).

x3
Spécifie la coordonnée x du point qui définit le point de départ de l’accord (en unités logiques).

y3
Spécifie la coordonnée y du point qui définit le point de départ de l’accord (en unités logiques).

x4
Spécifie la coordonnée x du point qui définit le point de terminaison de l’accord (en unités logiques).

y4
Spécifie la coordonnée y du point qui définit le point de terminaison de l’accord (en unités logiques).

lpRect
Spécifie le rectangle englobant (en unités logiques). Vous pouvez passer un LPRECT ou un CRect objet pour ce paramètre.

ptStart
Spécifie les coordonnées x et y du point qui définit le point de départ de l’accord (en unités logiques). Ce point n’a pas à mentir exactement sur l’accord. Vous pouvez passer une POINT structure ou un CPoint objet pour ce paramètre.

*ptEnd*
Spécifie les coordonnées x et y du point qui définit le point de fin de l’accord (en unités logiques). Ce point n’a pas à mentir exactement sur l’accord. Vous pouvez passer une POINT structure ou un CPoint objet pour ce paramètre.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Les paramètres ( x1, y1) et ( y2x2, ) spécifient les angles supérieur gauche et inférieur droit, respectivement, d’un rectangle englobant les points de suspension qui font partie de l’accord. Les paramètres ( x3, y3) et ( x4, y4) spécifient les points de terminaison d’une ligne qui croise les points de suspension. L’accord est dessiné à l’aide du stylet sélectionné et rempli à l’aide du pinceau sélectionné.

La figure dessinée par la Chord fonction s’étend jusqu’à, mais n’inclut pas les coordonnées droite et inférieure. Cela signifie que la hauteur de la figure est y2 - y1 et que la largeur de la figure est x2 - x1.

Exemple

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

Ferme une figure ouverte dans un chemin d’accès.

BOOL CloseFigure();

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

La fonction ferme la figure en dessinant une ligne de la position actuelle au premier point de la figure (généralement, le point spécifié par l’appel le plus récent à la MoveTo fonction membre) et connecte les lignes à l’aide du style de jointure de ligne. Si une figure est fermée à l’aide de la LineTo fonction membre au lieu de CloseFigure, les majuscules de fin sont utilisées pour créer l’angle au lieu d’une jointure. CloseFigure doit être appelé uniquement s’il existe un crochet de chemin ouvert dans le contexte de l’appareil.

Une figure d’un chemin d’accès est ouverte, sauf si elle est explicitement fermée à l’aide de cette fonction. (Une figure peut être ouverte même si le point actuel et le point de départ de la figure sont identiques.) Toute courbe ou ligne ajoutée au chemin après CloseFigure le démarrage d’une nouvelle figure.

CDC::CreateCompatibleDC

Crée un contexte d’appareil mémoire compatible avec l’appareil spécifié par pDC.

BOOL CreateCompatibleDC(CDC* pDC);

Paramètres

pDC
Pointeur vers un contexte de périphérique. Si pDC c’est NULLle cas, la fonction crée un contexte d’appareil mémoire compatible avec l’affichage système.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Un contexte d’appareil mémoire est un bloc de mémoire qui représente une surface d’affichage. Il peut être utilisé pour préparer des images en mémoire avant de les copier dans la surface réelle de l’appareil compatible.

Lorsqu’un contexte d’appareil mémoire est créé, GDI sélectionne automatiquement une bitmap de stock monochrome de 1 par 1 pour celle-ci. Les fonctions de sortie GDI peuvent être utilisées avec un contexte d’appareil mémoire uniquement si une bitmap a été créée et sélectionnée dans ce contexte.

Cette fonction ne peut être utilisée que pour créer des contextes d’appareil compatibles pour les appareils qui prennent en charge les opérations raster. Pour plus d’informations sur les transferts de bloc de bits entre les contextes d’appareil, consultez la CDC::BitBlt fonction membre. Pour déterminer si un contexte d’appareil prend en charge les opérations raster, consultez la RC_BITBLT fonctionnalité raster dans la fonction CDC::GetDeviceCapsmembre.

Exemple

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

Crée un contexte d’appareil pour l’appareil spécifié.

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

Paramètres

lpszDriverName
Pointe vers une chaîne terminée par null qui spécifie le nom de fichier (sans extension) du pilote de périphérique (par exemple, «EPSON »). Vous pouvez également transmettre un CString objet pour ce paramètre.

lpszDeviceName
Pointe vers une chaîne terminée par null qui spécifie le nom de l’appareil spécifique à prendre en charge (par exemple, «EPSON FX-80 »). Le lpszDeviceName paramètre est utilisé si le module prend en charge plusieurs appareils. Vous pouvez également transmettre un CString objet pour ce paramètre.

lpszOutput
Pointe vers une chaîne terminée par null qui spécifie le nom du fichier ou de l’appareil pour le support de sortie physique (fichier ou port de sortie). Vous pouvez également transmettre un CString objet pour ce paramètre.

lpInitData
Pointe vers une DEVMODE structure contenant des données d’initialisation spécifiques à l’appareil pour le pilote de périphérique. La fonction Windows DocumentProperties récupère cette structure remplie pour un appareil donné. Le lpInitData paramètre doit être NULL si le pilote de périphérique doit utiliser l’initialisation par défaut (le cas échéant) spécifiée par l’utilisateur via le Panneau de configuration.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Le PRINT.H fichier d’en-tête est requis si la DEVMODE structure est utilisée.

Les noms d’appareils suivent ces conventions : un signe deux-points de fin (:) est recommandé, mais facultatif. Windows supprime le signe deux-points de fin afin qu’un nom d’appareil se terminant par un signe deux-points soit mappé au même port que le même nom sans signe deux-points. Les noms de pilote et de port ne doivent pas contenir d’espaces de début ou de fin. Les fonctions de sortie GDI ne peuvent pas être utilisées avec des contextes d’informations.

CDC::CreateIC

Crée un contexte d’informations pour l’appareil spécifié.

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

Paramètres

lpszDriverName
Pointe vers une chaîne terminée par null qui spécifie le nom de fichier (sans extension) du pilote de périphérique (par exemple, «EPSON »). Vous pouvez transmettre un CString objet pour ce paramètre.

lpszDeviceName
Pointe vers une chaîne terminée par null qui spécifie le nom de l’appareil spécifique à prendre en charge (par exemple, «EPSON FX-80 »). Le lpszDeviceName paramètre est utilisé si le module prend en charge plusieurs appareils. Vous pouvez transmettre un CString objet pour ce paramètre.

lpszOutput
Pointe vers une chaîne terminée par null qui spécifie le nom du fichier ou de l’appareil pour le support de sortie physique (fichier ou port). Vous pouvez transmettre un CString objet pour ce paramètre.

lpInitData
Pointe vers des données d’initialisation spécifiques à l’appareil pour le pilote de périphérique. Le lpInitData paramètre doit être NULL si le pilote de périphérique doit utiliser l’initialisation par défaut (le cas échéant) spécifiée par l’utilisateur via le Panneau de configuration. Consultez CreateDC le format de données pour l’initialisation spécifique à l’appareil.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Le contexte d’informations fournit un moyen rapide d’obtenir des informations sur l’appareil sans créer de contexte d’appareil.

Les noms d’appareils suivent ces conventions : un signe deux-points de fin (:) est recommandé, mais facultatif. Windows supprime le signe deux-points de fin afin qu’un nom d’appareil se terminant par un signe deux-points soit mappé au même port que le même nom sans signe deux-points. Les noms de pilote et de port ne doivent pas contenir d’espaces de début ou de fin. Les fonctions de sortie GDI ne peuvent pas être utilisées avec des contextes d’informations.

CDC::DeleteDC

En général, n’appelez pas cette fonction ; le destructeur le fera pour vous.

BOOL DeleteDC();

Valeur de retour

Différent de zéro si la fonction s’est terminée correctement ; sinon 0.

Notes

La DeleteDC fonction membre supprime les contextes d’appareil Windows associés à m_hDC l’objet actuel CDC . Si cet CDC objet est le dernier contexte d’appareil actif pour un appareil donné, toutes les ressources de stockage et système utilisées par l’appareil sont publiées.

Une application ne doit pas appeler DeleteDC si des objets ont été sélectionnés dans le contexte de l’appareil. Les objets doivent d’abord être sélectionnés hors du contexte de l’appareil avant sa suppression.

Une application ne doit pas supprimer un contexte d’appareil dont le handle a été obtenu en appelant CWnd::GetDC. Au lieu de cela, il doit appeler CWnd::ReleaseDC pour libérer le contexte de l’appareil. Les CClientDC classes et CWindowDC les classes sont fournies pour encapsuler cette fonctionnalité.

La DeleteDC fonction est généralement utilisée pour supprimer des contextes d’appareil créés avec CreateDC, CreateICou CreateCompatibleDC.

Exemple

Consultez l’exemple pour CPrintDialog::GetPrinterDC.

CDC::DeleteTempMap

Appelé automatiquement par le CWinApp gestionnaire d’inactivité, DeleteTempMap supprime tous les objets temporaires créés CDC par FromHandle, mais ne détruit pas les handleshDC de contexte de l’appareil temporairement associés aux CDC objets.

static void PASCAL DeleteTempMap();

CDC::Detach

Appelez cette fonction pour détacher m_hDC (le contexte de l’appareil de sortie) de l’objet et définir à la CDC fois m_hDC et m_hAttribDC à NULL.

HDC Detach();

Valeur de retour

Contexte d’appareil Windows.

CDC::DPtoHIMETRIC

Utilisez cette fonction lorsque vous donnez HIMETRIC des tailles à OLE, en convertissant des pixels en HIMETRIC.

void DPtoHIMETRIC(LPSIZE lpSize) const;

Paramètres

lpSize
Pointe vers une structure ou CSize un objet SIZE.

Notes

Si le mode de mappage de l’objet de contexte d’appareil est MM_LOENGLISH, MM_HIENGLISHou MM_LOMETRIC, ou MM_HIMETRIC, la conversion est basée sur le nombre de pixels dans le pouce physique. Si le mode de mappage est l’un des autres modes non contraints (par exemple), MM_TEXTla conversion est basée sur le nombre de pixels dans le pouce logique.

CDC::DPtoLP

Convertit les unités d’appareil en unités logiques.

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

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

Paramètres

lpPoints
Pointe vers un tableau de structures ou CPoint d’objetsPOINT.

nCount
Nombre de points dans le tableau.

lpRect
Pointe vers une structure ou CRect un RECT objet. Ce paramètre est utilisé pour le cas simple de la conversion d’un rectangle à partir de points d’appareil en points logiques.

lpSize
Pointe vers une structure ou CSize un SIZE objet.

Notes

La fonction mappe les coordonnées de chaque point ou dimension d’une taille, du système de coordonnées de l’appareil au système de coordonnées logique de GDI. La conversion dépend du mode de mappage actuel et des paramètres des origines et étendues de la fenêtre et de la fenêtre de l’appareil.

CDC::Draw3dRect

Appelez cette fonction membre pour dessiner un rectangle tridimensionnel.

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

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

Paramètres

lpRect
Spécifie le rectangle englobant (en unités logiques). Vous pouvez passer un pointeur vers une RECT structure ou un CRect objet pour ce paramètre.

clrTopLeft
Spécifie la couleur des côtés supérieur et gauche du rectangle tridimensionnel.

clrBottomRight
Spécifie la couleur des côtés inférieur et droit du rectangle tridimensionnel.

x
Spécifie la coordonnée x logique du coin supérieur gauche du rectangle tridimensionnel.

y
Spécifie la coordonnée y logique du coin supérieur gauche du rectangle tridimensionnel.

cx
Spécifie la largeur du rectangle à trois dimensions.

cy
Spécifie la hauteur du rectangle à trois dimensions.

Notes

Le rectangle sera dessiné avec les côtés supérieur et gauche dans la couleur spécifiée par clrTopLeft et les côtés inférieur et droit dans la couleur spécifiée par clrBottomRight.

Exemple

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

Appelez cette fonction membre à plusieurs reprises pour redessiner un rectangle de glissement.

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

Paramètres

lpRect
Pointe vers une RECT structure ou un CRect objet qui spécifie les coordonnées logiques d’un rectangle , dans ce cas, la position de fin du rectangle en cours de redéployation.

size
Spécifie le déplacement du coin supérieur gauche de la bordure externe vers le coin supérieur gauche de la bordure interne (c’est-à-dire l’épaisseur de la bordure) d’un rectangle.

lpRectLast
Pointe vers une RECT structure ou un CRect objet qui spécifie les coordonnées logiques de la position d’un rectangle , dans ce cas, la position d’origine du rectangle en cours de redessination.

sizeLast
Spécifie le déplacement du coin supérieur gauche de la bordure externe vers le coin supérieur gauche de la bordure interne (c’est-à-dire l’épaisseur de la bordure) du rectangle d’origine en cours de redessination.

pBrush
Pointeur vers un objet pinceau. Définissez cette option pour NULL utiliser le pinceau demi-teinte par défaut.

pBrushLast
Pointeur vers le dernier objet pinceau utilisé. Définissez cette option pour NULL utiliser le pinceau demi-teinte par défaut.

Notes

Appelez-le dans une boucle à mesure que vous échantillonnerez la position de la souris, afin de donner des commentaires visuels. Lorsque vous appelez DrawDragRect, le rectangle précédent est effacé et un nouveau rectangle est dessiné. Par exemple, lorsque l’utilisateur fait glisser un rectangle sur l’écran, DrawDragRect efface le rectangle d’origine et redessine un nouveau rectangle à sa nouvelle position. Par défaut, DrawDragRect dessine le rectangle à l’aide d’un pinceau demi-teinte pour éliminer le scintillement et créer l’apparence d’un rectangle en mouvement lisse.

La première fois que vous appelez DrawDragRect, le lpRectLast paramètre doit être NULL.

CDC::DrawEdge

Appelez cette fonction membre pour dessiner les bords d’un rectangle du type et du style spécifiés.

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

Paramètres

lpRect
Pointeur vers une RECT structure qui contient les coordonnées logiques du rectangle.

nEdge
Spécifie le type de bord interne et externe à dessiner. Ce paramètre doit être une combinaison d’un indicateur de bordure interne et d’un indicateur de bordure externe. Consultez DrawEdge le Kit de développement logiciel (SDK) Windows pour obtenir une table des types du paramètre.

nFlags
Indicateurs qui spécifient le type de bordure à dessiner. Consultez DrawEdge le Kit de développement logiciel (SDK) Windows pour obtenir une table des valeurs du paramètre. Pour les lignes diagonales, les BF_RECT indicateurs spécifient le point de terminaison du vecteur délimité par le paramètre rectangle.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

CDC::DrawEscape

Accède aux fonctionnalités de dessin d’un affichage vidéo qui ne sont pas directement disponibles via l’interface GDI (Graphics Device Interface).

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

Paramètres

nEscape
Spécifie la fonction d’échappement à effectuer.

nInputSize
Spécifie le nombre d’octets de données pointés par le lpszInputData paramètre.

lpszInputData
Pointe vers la structure d’entrée requise pour l’échappement spécifié.

Valeur de retour

Spécifie le résultat de la fonction. Supérieur à zéro en cas de réussite, à l’exception de l’échappement QUERYESCSUPPORT de dessin, qui vérifie l’implémentation uniquement ; ou zéro si l’échappement n’est pas implémenté ; ou inférieur à zéro si une erreur s’est produite.

Notes

Lorsqu’une application appelle DrawEscape, les données identifiées par nInputSize et lpszInputData sont transmises directement au pilote d’affichage spécifié.

CDC::DrawFocusRect

Dessine un rectangle dans le style utilisé pour indiquer que le rectangle a le focus.

void DrawFocusRect(LPCRECT lpRect);

Paramètres

lpRect
Pointe vers une RECT structure ou un CRect objet qui spécifie les coordonnées logiques du rectangle à dessiner.

Notes

Étant donné qu’il s’agit d’une fonction XOR booléenne (^), l’appel de cette fonction une deuxième fois avec le même rectangle supprime le rectangle de l’affichage. Impossible de faire défiler le rectangle dessiné par cette fonction. Pour faire défiler une zone contenant un rectangle dessiné par cette fonction, appelez DrawFocusRect d’abord pour supprimer le rectangle de l’affichage, faites défiler la zone, puis appelez DrawFocusRect à nouveau pour dessiner le rectangle à la nouvelle position.

Attention

DrawFocusRect fonctionne uniquement en MM_TEXT mode. Dans d’autres modes, cette fonction ne dessine pas correctement le rectangle de focus, mais elle ne retourne pas de valeurs d’erreur.

CDC::DrawFrameControl

Appelez cette fonction membre pour dessiner un contrôle frame du type et du style spécifiés.

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

Paramètres

lpRect
Pointeur vers une RECT structure qui contient les coordonnées logiques du rectangle.

nType
Spécifie le type de contrôle frame à dessiner. Consultez le uType paramètre dans DrawFrameControl le Kit de développement logiciel (SDK) Windows pour obtenir la liste des valeurs possibles de ce paramètre.

nState
Spécifie l’état initial du contrôle frame. Il peut s’agir d’une ou plusieurs des valeurs décrites pour le uState paramètre dans DrawFrameControl le Kit de développement logiciel (SDK) Windows. Utilisez la nState valeur DFCS_ADJUSTRECT pour ajuster le rectangle englobant pour exclure le bord environnant du bouton Push.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Dans plusieurs cas, nState dépend du nType paramètre. La liste suivante montre la relation entre les quatre nType valeurs et nState:

  • DFC_BUTTON

    • DFCS_BUTTON3STATE Bouton à trois états

    • DFCS_BUTTONCHECK Case à cocher

    • DFCS_BUTTONPUSH Bouton-poussoir

    • DFCS_BUTTONRADIO Case d’option

    • DFCS_BUTTONRADIOIMAGE Image pour la case d’option (image non nécessaire)

    • DFCS_BUTTONRADIOMASK Masque pour case d’option (masque non nécessaire à un masque)

  • DFC_CAPTION

    • DFCS_CAPTIONCLOSE Bouton Fermer

    • DFCS_CAPTIONHELP Bouton Aide

    • DFCS_CAPTIONMAX Bouton Agrandir

    • DFCS_CAPTIONMIN Bouton Réduire

    • DFCS_CAPTIONRESTORE Bouton Restaurer

  • DFC_MENU

    • DFCS_MENUARROW Flèche de sous-menu

    • DFCS_MENUBULLET Balle

    • DFCS_MENUCHECK Coche

  • DFC_SCROLL

    • DFCS_SCROLLCOMBOBOX Barre de défilement de la zone de liste modifiable

    • DFCS_SCROLLDOWN Flèche vers le bas de la barre de défilement

    • DFCS_SCROLLLEFT Flèche gauche de la barre de défilement

    • DFCS_SCROLLRIGHT Flèche droite de la barre de défilement

    • DFCS_SCROLLSIZEGRIP Poignée de taille dans le coin inférieur droit de la fenêtre

    • DFCS_SCROLLUP Flèche vers le haut de la barre de défilement

Exemple

Ce code dessine la poignée de taille dans le coin inférieur droit de votre fenêtre. Il est approprié pour le OnPaint gestionnaire d’une boîte de dialogue, qui n’a aucun style et ne contient normalement pas d’autres contrôles (comme une barre d’état) qui peuvent lui donner une poignée de taille.

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

Dessine une icône sur l’appareil représenté par l’objet actif CDC .

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

BOOL DrawIcon(
    POINT point,
    HICON hIcon);

Paramètres

x
Spécifie la coordonnée x logique du coin supérieur gauche de l’icône.

y
Spécifie la coordonnée y logique du coin supérieur gauche de l’icône.

hIcon
Identifie le handle de l’icône à dessiner.

point
Spécifie les coordonnées x et y logiques du coin supérieur gauche de l’icône. Vous pouvez passer une POINT structure ou un CPoint objet pour ce paramètre.

Valeur de retour

Différent de zéro si la fonction s’est terminée correctement ; sinon 0.

Notes

La fonction place l’angle supérieur gauche de l’icône à l’emplacement spécifié par x et y. L’emplacement est soumis au mode de mappage actuel du contexte de l’appareil.

La ressource d’icône doit avoir été précédemment chargée à l’aide des fonctions CWinApp::LoadIcon, CWinApp::LoadStandardIconou CWinApp::LoadOEMIcon. Le MM_TEXT mode de mappage doit être sélectionné avant d’utiliser cette fonction.

Exemple

Consultez l’exemple pour CWnd::IsIconic.

CDC::DrawState

Appelez cette fonction membre pour afficher une image et appliquer un effet visuel pour indiquer un état, tel qu’un état désactivé ou par défaut.

Remarque

Pour tous les nFlag états sauf DSS_NORMAL, l’image est convertie en monochrome avant l’application de l’effet visuel.

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

Paramètres

pt
Spécifie l’emplacement de l’image.

size
Spécifie la taille de l’image.

hBitmap
Handle vers une bitmap.

nFlags
Indicateurs qui spécifient le type et l’état de l’image. Consultez DrawState le Kit de développement logiciel (SDK) Windows pour connaître les types et états nFlags possibles.

hBrush
Poignée d’un pinceau.

pBitmap
Pointeur vers un objet CBitmap.

pBrush
Pointeur vers un objet CBrush.

hIcon
Handle vers une icône.

lpszText
Pointeur vers le texte.

bPrefixText
Texte qui peut contenir un mnémonique accélérateur. Le lData paramètre spécifie l’adresse de la chaîne et le nTextLen paramètre spécifie la longueur. Si nTextLen la valeur est 0, la chaîne est supposée être terminée par null.

nTextLen
Longueur de la chaîne de texte pointée par lpszText. Si nTextLen la valeur est 0, la chaîne est supposée être terminée par null.

lpDrawProc
Pointeur vers une fonction de rappel utilisée pour afficher une image. Ce paramètre est obligatoire si le type d’image est nFlags DST_COMPLEX. Il est facultatif et peut être NULL si le type d’image est DST_TEXT. Pour tous les autres types d’images, ce paramètre est ignoré. Pour plus d’informations sur la fonction de rappel, consultez la DrawStateProc fonction dans le Kit de développement logiciel (SDK) Windows.

lData
Spécifie des informations sur l’image. La signification de ce paramètre dépend du type d’image.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

CDC::DrawText

Appelez cette fonction membre pour mettre en forme le texte dans le rectangle donné. Pour spécifier d’autres options de mise en forme, utilisez CDC::DrawTextEx.

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

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

Paramètres

lpszString
Pointe vers la chaîne à dessiner. Si nCount la valeur est -1, la chaîne doit être terminée par null.

nCount
Spécifie le nombre de caractères dans la chaîne. Si nCount la valeur est -1, lpszString il est supposé être un pointeur long vers une chaîne terminée par null et DrawText calcule automatiquement le nombre de caractères.

lpRect
Pointe vers une structure ou CRect un RECT objet qui contient le rectangle (en coordonnées logiques) dans lequel le texte doit être mis en forme.

str
Objet CString qui contient les caractères spécifiés à dessiner.

nFormat
Spécifie la méthode de mise en forme du texte. Il peut s’agir de n’importe quelle combinaison des valeurs décrites pour le uFormat paramètre dans DrawText le Kit de développement logiciel (SDK) Windows. (combiner à l’aide de l’opérateur OR au niveau du bit) :

Remarque

Certaines uFormat combinaisons d’indicateurs peuvent entraîner la modification de la chaîne passée. L’utilisation DT_MODIFYSTRING avec l’un ou DT_PATH_ELLIPSIS l’autre DT_END_ELLIPSIS peut entraîner la modification de la chaîne, ce qui entraîne une assertion dans le CString remplacement. Les valeurs DT_CALCRECT, , DT_INTERNALDT_EXTERNALLEADING, DT_NOCLIPet DT_NOPREFIX ne peuvent pas être utilisées avec la DT_TABSTOP valeur.

Valeur de retour

Hauteur du texte si la fonction réussit.

Notes

Il met en forme du texte en développant des onglets en espaces appropriés, en alignant le texte à gauche, à droite ou au centre du rectangle donné, et en décomposant du texte en lignes qui s’intègrent dans le rectangle donné. Le type de mise en forme est spécifié par nFormat.

Cette fonction membre utilise la police sélectionnée, la couleur de texte et la couleur d’arrière-plan du contexte de l’appareil pour dessiner le texte. Sauf si le DT_NOCLIP format est utilisé, DrawText clipse le texte afin que le texte ne s’affiche pas en dehors du rectangle donné. Toutes les mises en forme sont supposées avoir plusieurs lignes, sauf si le DT_SINGLELINE format est donné.

Si la police sélectionnée est trop grande pour le rectangle spécifié, la DrawText fonction membre ne tente pas de remplacer une police plus petite.

Si l’indicateur DT_CALCRECT est spécifié, le rectangle spécifié par lpRect sera mis à jour pour refléter la largeur et la hauteur nécessaires pour dessiner le texte.

Si l’indicateur d’alignement du TA_UPDATECP texte a été défini (voir CDC::SetTextAlign), DrawText affiche le texte commençant à la position actuelle, plutôt qu’à gauche du rectangle donné. DrawText n’encapsule pas le texte lorsque l’indicateur TA_UPDATECP a été défini (autrement dit, l’indicateur DT_WORDBREAK n’aura aucun effet).

La couleur du texte peut être définie par CDC::SetTextColor.

CDC::DrawTextEx

Met en forme le texte dans le rectangle donné.

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

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

Paramètres

lpszString
Pointe vers la chaîne à dessiner. Si nCount la valeur est -1, la chaîne doit être terminée par null.

nCount
Spécifie le nombre de caractères dans la chaîne. Si nCount la valeur est -1, lpszString il est supposé être un pointeur long vers une chaîne terminée par null et DrawText calcule automatiquement le nombre de caractères.

lpRect
Pointe vers une structure ou CRect un RECT objet qui contient le rectangle (en coordonnées logiques) dans lequel le texte doit être mis en forme.

str
Objet CString qui contient les caractères spécifiés à dessiner.

nFormat
Spécifie la méthode de mise en forme du texte. Il peut s’agir de n’importe quelle combinaison des valeurs décrites pour le uFormat paramètre dans DrawText le Kit de développement logiciel (SDK) Windows. (Combiner à l’aide du bit Opérateur OR ) :

Remarque

Certaines uFormat combinaisons d’indicateurs peuvent entraîner la modification de la chaîne passée. L’utilisation DT_MODIFYSTRING avec l’un ou DT_PATH_ELLIPSIS l’autre DT_END_ELLIPSIS peut entraîner la modification de la chaîne, ce qui entraîne une assertion dans le CString remplacement. Les valeurs DT_CALCRECT, , DT_INTERNALDT_EXTERNALLEADING, DT_NOCLIPet DT_NOPREFIX ne peuvent pas être utilisées avec la DT_TABSTOP valeur.

lpDTParams
Pointeur vers une DRAWTEXTPARAMS structure qui spécifie d’autres options de mise en forme. Ce paramètre peut être NULL.

Notes

Il met en forme du texte en développant des onglets en espaces appropriés, en alignant le texte à gauche, à droite ou au centre du rectangle donné, et en décomposant du texte en lignes qui s’intègrent dans le rectangle donné. Le type de mise en forme est spécifié par nFormat et lpDTParams. Pour plus d’informations, consultez CDC::DrawText et DrawTextEx dans le Kit de développement logiciel (SDK) Windows.

La couleur du texte peut être définie par CDC::SetTextColor.

CDC::Ellipse

Dessine une ellipse.

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

BOOL Ellipse(LPCRECT lpRect);

Paramètres

x1
Spécifie la coordonnée x logique du coin supérieur gauche du rectangle englobant de l’ellipse.

y1
Spécifie la coordonnée y logique du coin supérieur gauche du rectangle englobant de l’ellipse.

x2
Spécifie la coordonnée x logique du coin inférieur droit du rectangle englobant de l’ellipse.

y2
Spécifie la coordonnée y logique du coin inférieur droit du rectangle englobant de l’ellipse.

lpRect
Spécifie le rectangle englobant de l’ellipse. Vous pouvez également transmettre un CRect objet pour ce paramètre.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Le centre de l’ellipse est le centre du rectangle englobant spécifié par x1, y1, x2et , et y2, ou lpRect. L’ellipse est dessinée avec le stylet actuel, et son intérieur est rempli avec le pinceau actuel.

La figure dessinée par cette fonction s’étend jusqu’à, mais n’inclut pas, les coordonnées droite et inférieure. Cela signifie que la hauteur de la figure est y2 - y1 et que la largeur de la figure est x2 - x1.

Si la largeur ou la hauteur du rectangle englobant est 0, aucun ellipse n’est dessiné.

CDC::EndDoc

Termine un travail d’impression démarré par un appel à la StartDoc fonction membre.

int EndDoc();

Valeur de retour

Supérieur ou égal à 0 si la fonction réussit, ou une valeur négative si une erreur s’est produite.

Notes

Cette fonction membre remplace l’échappement de l’imprimante ENDDOC et doit être appelée immédiatement après avoir terminé une tâche d’impression réussie.

Si une application rencontre une erreur d’impression ou une opération d’impression annulée, elle ne doit pas tenter d’arrêter l’opération à l’aide de l’une ou l’autre EndDoc des opérations AbortDoc. GDI met automatiquement fin à l’opération avant de retourner la valeur d’erreur.

Cette fonction ne doit pas être utilisée dans les métafichiers.

Exemple

Consultez l’exemple pour CDC::StartDoc.

CDC::EndPage

Informe l’appareil que l’application a terminé d’écrire dans une page.

int EndPage();

Valeur de retour

Supérieur ou égal à 0 si la fonction réussit, ou une valeur négative si une erreur s’est produite.

Notes

Cette fonction membre est généralement utilisée pour diriger le pilote de périphérique vers une nouvelle page.

Cette fonction membre remplace l’échappement de l’imprimante NEWFRAME . Contrairement NEWFRAMEà , cette fonction est toujours appelée après l’impression d’une page.

Exemple

Consultez l’exemple pour CDC::StartDoc.

CDC::EndPath

Ferme un crochet de chemin et sélectionne le chemin défini par le crochet dans le contexte de l’appareil.

BOOL EndPath();

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Exemple

Consultez l’exemple pour CDC::BeginPath.

CDC::EnumObjects

Énumère les stylos et pinceaux disponibles dans un contexte d’appareil.

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

Paramètres

nObjectType
Spécifie le type d’objet. Il peut avoir les valeurs OBJ_BRUSH ou OBJ_PEN.

lpfn
Adresse de l’instance de procédure de la fonction de rappel fournie par l’application. Consultez la section « Remarques » ci-dessous.

lpData
Pointe vers les données fournies par l’application. Les données sont transmises à la fonction de rappel, ainsi que les informations sur l’objet.

Valeur de retour

Spécifie la dernière valeur retournée par la fonction de rappel. Sa signification est définie par l’utilisateur.

Notes

Pour chaque objet d’un type donné, la fonction de rappel que vous passez est appelée avec les informations de cet objet. Le système appelle la fonction de rappel jusqu’à ce qu’il n’y ait plus d’objets ou que la fonction de rappel retourne 0.

De nouvelles fonctionnalités de Microsoft Visual C++ vous permettent d’utiliser une fonction ordinaire comme fonction passée à EnumObjects. L’adresse passée EnumObjects est un pointeur vers une fonction exportée avec EXPORT et avec la convention d’appel Pascal. Dans les applications en mode protection, vous n’avez pas besoin de créer cette fonction avec la fonction Windows MakeProcInstance ou de libérer la fonction après l’utilisation avec la FreeProcInstance fonction Windows.

Vous n’avez pas non plus besoin d’exporter le nom de la fonction dans une EXPORTS instruction dans le fichier de définition de module de votre application. Vous pouvez à la place utiliser le modificateur de EXPORT fonction, comme dans

int CALLBACK EXPORT AFunction (LPSTR, LPSTR) ;

pour que le compilateur émette l’enregistrement d’exportation approprié pour l’exportation par nom sans alias. Cela fonctionne pour la plupart des besoins. Dans certains cas spéciaux, tels que l’exportation d’une fonction par ordinal ou l’alias de l’exportation, vous devez toujours utiliser une EXPORTS instruction dans un fichier de définition de module.

Pour compiler des programmes Microsoft Foundation, vous utiliserez normalement les options du compilateur et /GEs des /GA options. L’option /Gw du compilateur n’est pas utilisée avec les classes Microsoft Foundation. (Si vous utilisez la fonction MakeProcInstanceWindows, vous devez convertir explicitement le pointeur de fonction retourné vers FARPROC le type nécessaire dans cette API.) Les interfaces d’inscription de rappel sont désormais de type sécurisé (vous devez passer un pointeur de fonction qui pointe vers le type de fonction approprié pour le rappel spécifique).

En outre, toutes les fonctions de rappel doivent intercepter les exceptions Microsoft Foundation avant de revenir à Windows, car les exceptions ne peuvent pas être levées entre les limites de rappel. Pour plus d’informations sur les exceptions, consultez l’article Exceptions.

Exemple

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

Cette fonction membre est pratiquement obsolète pour la programmation Win32.

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

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

Paramètres

nEscape
Spécifie la fonction d’échappement à effectuer.

Pour obtenir la liste complète des fonctions d’échappement, consultez Escape le Kit de développement logiciel (SDK) Windows.

nCount
Spécifie le nombre d’octets de données pointés par lpszInData.

lpszInData
Pointe vers la structure de données d’entrée requise pour cette échappement.

lpOutData
Pointe vers la structure qui doit recevoir la sortie de cette échappement. Le lpOutData paramètre est NULL si aucune donnée n’est retournée.

nInputSize
Spécifie le nombre d’octets de données pointés par le lpszInputData paramètre.

lpszInputData
Pointe vers la structure d’entrée requise pour l’échappement spécifié.

nOutputSize
Spécifie le nombre d’octets de données pointés par le lpszOutputData paramètre.

lpszOutputData
Pointe vers la structure qui reçoit la sortie de cette échappement. Ce paramètre doit être NULL si aucune donnée n’est retournée.

Valeur de retour

Une valeur positive est retournée si la fonction réussit, à l’exception de l’échappement QUERYESCSUPPORT , qui vérifie uniquement l’implémentation. Zéro est retourné si l’échappement n’est pas implémenté. Une valeur négative est retournée si une erreur s’est produite. Voici les valeurs d’erreur courantes :

  • SP_ERROR Erreur générale.

  • SP_OUTOFDISK L’espace disque insuffisant est actuellement disponible pour lepooling, et aucun espace supplémentaire ne sera disponible.

  • SP_OUTOFMEMORY La mémoire insuffisante est disponible pour lepooling.

  • SP_USERABORT L’utilisateur a terminé le travail via le Gestionnaire d’impression.

Notes

Parmi les échappements d’imprimante d’origine, seuls QUERYESCSUPPORT les applications Win32 sont prises en charge. Toutes les autres échappements d’imprimante sont obsolètes et sont pris en charge uniquement pour la compatibilité avec les applications 16 bits.

Pour la programmation Win32, CDC fournit désormais six fonctions membres qui remplacent leurs échappements d’imprimante correspondants :

En outre, CDC::GetDeviceCaps prend en charge les index Win32 qui remplacent d’autres échappements d’imprimante. Pour plus d’informations, consultez GetDeviceCaps le Kit de développement logiciel (SDK) Windows.

Cette fonction membre permet aux applications d’accéder aux installations d’un appareil particulier qui ne sont pas directement disponibles via GDI.

Utilisez la première version si votre application utilise des valeurs d’échappement prédéfinies. Utilisez la deuxième version si votre application définit des valeurs d’échappement privées. Pour plus d’informations sur la deuxième version, consultez ExtEscape le Kit de développement logiciel (SDK) Windows.

CDC::ExcludeClipRect

Crée une région de découpage qui se compose de la région de découpage existante moins le rectangle spécifié.

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

int ExcludeClipRect(LPCRECT lpRect);

Paramètres

x1
Spécifie la coordonnée x logique du coin supérieur gauche du rectangle.

y1
Spécifie la coordonnée y logique du coin supérieur gauche du rectangle.

x2
Spécifie la coordonnée x logique du coin inférieur droit du rectangle.

y2
Spécifie la coordonnée y logique du coin inférieur droit du rectangle.

lpRect
Spécifie le rectangle. Peut également être un CRect objet.

Valeur de retour

Spécifie le type de la nouvelle région de découpage. Il peut s’agir de l’une des valeurs suivantes :

  • COMPLEXREGION La région a des bordures qui se chevauchent.

  • ERROR Aucune région n’a été créée.

  • NULLREGION La région est vide.

  • SIMPLEREGION La région n’a pas de bordures qui se chevauchent.

Notes

La largeur du rectangle, spécifiée par la valeur absolue de x2 - x1, ne doit pas dépasser 32 767 unités. Cette limite s’applique également à la hauteur du rectangle.

CDC::ExcludeUpdateRgn

Empêche le dessin dans des zones non valides d’une fenêtre en excluant une région mise à jour dans la fenêtre de la région de découpage associée à l’objet CDC .

int ExcludeUpdateRgn(CWnd* pWnd);

Paramètres

pWnd
Pointe vers l’objet de fenêtre dont la fenêtre est mise à jour.

Valeur de retour

Type de région exclue. Il peut s’agir de l’une des valeurs suivantes :

  • COMPLEXREGION La région a des bordures qui se chevauchent.

  • ERROR Aucune région n’a été créée.

  • NULLREGION La région est vide.

  • SIMPLEREGION La région n’a pas de bordures qui se chevauchent.

CDC::ExtFloodFill

Remplit une zone de la surface d’affichage avec le pinceau actuel.

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

Paramètres

x
Spécifie la coordonnée x logique du point où commence le remplissage.

y
Spécifie la coordonnée y logique du point où commence le remplissage.

crColor
Spécifie la couleur de la limite ou de la zone à remplir. L’interprétation de crColor dépend de la valeur de nFillType.

nFillType
Spécifie le type de remplissage d’inondation à effectuer. Il doit s’agir de l’une des valeurs suivantes :

  • FLOODFILLBORDER La zone de remplissage est limitée par la couleur spécifiée par crColor. Ce style est identique au remplissage effectué par FloodFill.

  • FLOODFILLSURFACE La zone de remplissage est définie par la couleur spécifiée par crColor. Le remplissage continue vers l’extérieur dans toutes les directions tant que la couleur est rencontrée. Ce style est utile pour remplir des zones avec des limites multicolores.

Valeur de retour

Différent de zéro si la fonction réussit ; sinon, 0 si le remplissage n’a pas pu être terminé, si le point donné a la couleur de limite spécifiée par crColor (si FLOODFILLBORDER elle a été demandée), si le point donné n’a pas la couleur spécifiée par crColor (si FLOODFILLSURFACE elle a été demandée), ou si le point est en dehors de la zone de découpage.

Notes

Cette fonction membre offre plus de flexibilité que parce que FloodFill vous pouvez spécifier un type de nFillTyperemplissage .

Si nFillType elle est définie FLOODFILLBORDERsur , la zone est supposée être complètement limitée par la couleur spécifiée par crColor. La fonction commence au point spécifié par x et y remplit toutes les directions vers la limite de couleur.

Si nFillType elle est définie FLOODFILLSURFACEsur , la fonction commence au point spécifié par x et y se poursuit dans toutes les directions, remplissant toutes les zones adjacentes contenant la couleur spécifiée par crColor.

Seuls les contextes de mémoire et les appareils qui prennent en charge la prise en charge ExtFloodFillde la technologie raster-display . Pour plus d’informations, consultez la GetDeviceCaps fonction membre.

CDC::ExtTextOut

Appelez cette fonction membre pour écrire une chaîne de caractères dans une région rectangulaire à l’aide de la police actuellement sélectionnée.

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

Paramètres

x
Spécifie la coordonnée x logique de la cellule de caractère pour le premier caractère de la chaîne spécifiée.

y
Spécifie la coordonnée y logique du haut de la cellule de caractère pour le premier caractère de la chaîne spécifiée.

nOptions
Spécifie le type de rectangle. Ce paramètre peut être un, les deux ou aucune des valeurs suivantes :

  • ETO_CLIPPED Spécifie que le texte est coupé dans le rectangle.

  • ETO_OPAQUE Spécifie que la couleur d’arrière-plan actuelle remplit le rectangle. (Vous pouvez définir et interroger la couleur d’arrière-plan actuelle avec les fonctions membres et GetBkColor les SetBkColor fonctions membres.)

lpRect
Pointe vers une RECT structure qui détermine les dimensions du rectangle. Ce paramètre peut être NULL. Vous pouvez également transmettre un CRect objet pour ce paramètre.

lpszString
Pointe vers la chaîne de caractères spécifiée à dessiner. Vous pouvez également transmettre un CString objet pour ce paramètre.

nCount
Spécifie le nombre de caractères de la chaîne.

lpDxWidths
Pointe vers un tableau de valeurs qui indiquent la distance entre les origines des cellules de caractères adjacentes. Par exemple, lpDxWidths[ i] les unités logiques séparent les origines de la cellule i de caractère et de la cellule i de caractères + 1. Si lpDxWidths c’est NULLle cas, ExtTextOut utilise l’espacement par défaut entre les caractères.

str
Objet CString qui contient les caractères spécifiés à dessiner.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

La région rectangulaire peut être opaque (remplie de la couleur d’arrière-plan actuelle), et il peut s’agir d’une zone de découpage.

Si nOptions la valeur est 0 et lpRect est NULL, la fonction écrit du texte dans le contexte de l’appareil sans utiliser de région rectangulaire. Par défaut, la position actuelle n’est pas utilisée ou mise à jour par la fonction. Si une application doit mettre à jour la position actuelle lorsqu’elle appelle ExtTextOut, l’application peut appeler la CDC fonction SetTextAlign membre avec nFlags la valeur définie TA_UPDATECPsur . Lorsque cet indicateur est défini, Windows ignore x et y sur les appels suivants à ExtTextOut la place et utilise la position actuelle. Lorsqu’une application utilise TA_UPDATECP pour mettre à jour la position actuelle, ExtTextOut définit la position actuelle à la fin de la ligne de texte précédente ou à la position spécifiée par le dernier élément du tableau pointé par lpDxWidths, selon ce qui est supérieur.

CDC::FillPath

Ferme toutes les figures ouvertes dans le chemin actuel et remplit l’intérieur du chemin à l’aide du mode de remplissage actuel du pinceau et du polygone.

BOOL FillPath();

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Une fois son intérieur rempli, le chemin d’accès est ignoré du contexte de l’appareil.

CDC::FillRect

Appelez cette fonction membre pour remplir un rectangle donné à l’aide du pinceau spécifié.

void FillRect(
    LPCRECT lpRect,
    CBrush* pBrush);

Paramètres

lpRect
Pointe vers une RECT structure qui contient les coordonnées logiques du rectangle à remplir. Vous pouvez également transmettre un CRect objet pour ce paramètre.

pBrush
Identifie le pinceau utilisé pour remplir le rectangle.

Notes

La fonction remplit le rectangle complet, y compris les bordures gauche et supérieure, mais elle ne remplit pas les bordures droite et inférieure.

Le pinceau doit être créé à l’aide des CBrush fonctions CreateHatchBrushmembres , CreatePatternBrushet , ou CreateSolidBrushrécupéré par la GetStockObject fonction Windows.

Lorsque vous remplissez le rectangle spécifié, FillRect n’inclut pas les côtés droit et inférieur du rectangle. GDI remplit un rectangle jusqu’à, mais n’inclut pas, la colonne droite et la ligne inférieure, quel que soit le mode de mappage actuel. FillRectcompare les valeurs du topbottomleftrectangle spécifié, ainsi right que les membres du rectangle spécifié. S’il bottom est inférieur ou égal à top, ou s’il right est inférieur ou égal à left, le rectangle n’est pas dessiné.

FillRect est similaire à CDC::FillSolidRect; cependant, FillRect prend un pinceau et peut donc être utilisé pour remplir un rectangle avec une couleur unie, une couleur tramée, des pinceaux hachés ou un motif. FillSolidRect utilise uniquement des couleurs unie (indiquées par un COLORREF paramètre). FillRect est généralement plus lent que FillSolidRect.

CDC::FillRgn

Remplit la région spécifiée par pRgn le pinceau spécifié par pBrush.

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

Paramètres

pRgn
Pointeur vers la région à remplir. Les coordonnées de la région donnée sont spécifiées en unités logiques.

pBrush
Identifie le pinceau à utiliser pour remplir la région.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Le pinceau doit être créé à l’aide des CBrush fonctions CreateHatchBrushmembres, CreatePatternBrushou CreateSolidBrushêtre récupéré par GetStockObject.

Exemple

Consultez l’exemple pour CRgn::CreateRoundRectRgn.

CDC::FillSolidRect

Appelez cette fonction membre pour remplir le rectangle donné avec la couleur unie spécifiée.

void FillSolidRect(
    LPCRECT lpRect,
    COLORREF clr);

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

Paramètres

lpRect
Spécifie le rectangle englobant (en unités logiques). Vous pouvez passer un pointeur vers une RECT structure de données ou un CRect objet pour ce paramètre.

clr Spécifie la couleur à utiliser pour remplir le rectangle.

x
Spécifie la coordonnée x logique du coin supérieur gauche du rectangle.

y
Spécifie la coordonnée y logique du coin supérieur gauche du rectangle de destination.

cx
Spécifie la largeur du rectangle.

cy
Spécifie la hauteur du rectangle.

Notes

FillSolidRect est très similaire à CDC::FillRect; cependant, FillSolidRect utilise uniquement des couleurs unie (indiquées par le COLORREF paramètre), tandis que prend FillRect un pinceau et peut donc être utilisé pour remplir un rectangle avec une couleur unie, une couleur tramée, des pinceaux hachés ou un motif. FillSolidRect est généralement plus rapide que FillRect.

Remarque

Lorsque vous appelez FillSolidRect, la couleur d’arrière-plan, qui a été précédemment définie à l’aide SetBkColor, est définie sur la couleur indiquée par clr.

CDC::FlattenPath

Transforme toutes les courbes du chemin sélectionné dans le contexte actuel de l’appareil et transforme chaque courbe en une séquence de lignes.

BOOL FlattenPath();

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

CDC::FloodFill

Remplit une zone de la surface d’affichage avec le pinceau actuel.

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

Paramètres

x
Spécifie la coordonnée x logique du point où commence le remplissage.

y
Spécifie la coordonnée y logique du point où commence le remplissage.

crColor
Spécifie la couleur de la limite.

Valeur de retour

Différent de zéro si la fonction réussit ; sinon, 0 est retourné si le remplissage n’a pas pu être terminé, le point donné a la couleur de limite spécifiée par crColor, ou le point est en dehors de la zone de découpage.

Notes

La zone est supposée être limitée comme spécifié par crColor. La FloodFill fonction commence au point spécifié par x et y se poursuit dans toutes les directions de la limite de couleur.

Seuls les contextes d’appareil mémoire et les appareils qui prennent en charge la technologie raster-display prennent en charge la FloodFill fonction membre. Pour plus d’informations sur RC_BITBLT la fonctionnalité, consultez la GetDeviceCaps fonction membre.

La ExtFloodFill fonction offre une fonctionnalité similaire, mais une plus grande flexibilité.

CDC::FrameRect

Dessine une bordure autour du rectangle spécifié par lpRect.

void FrameRect(
    LPCRECT lpRect,
    CBrush* pBrush);

Paramètres

lpRect
Pointe vers une structure ou CRect un RECT objet qui contient les coordonnées logiques des coins supérieur gauche et inférieur droit du rectangle. Vous pouvez également transmettre un CRect objet pour ce paramètre.

pBrush
Identifie le pinceau à utiliser pour cadrer le rectangle.

Notes

La fonction utilise le pinceau donné pour dessiner la bordure. La largeur et la hauteur de la bordure sont toujours 1 unité logique.

Si la coordonnée du bottom rectangle est inférieure ou égale à top, ou si right elle est inférieure ou égale à left, le rectangle n’est pas dessiné.

La bordure dessinée par FrameRect est dans la même position qu’une bordure dessinée par la fonction membre à l’aide Rectangle des mêmes coordonnées (si Rectangle elle utilise un stylet de 1 unité logique large). L’intérieur du rectangle n’est pas rempli par FrameRect.

CDC::FrameRgn

Dessine une bordure autour de la région spécifiée pRgn à l’aide du pinceau spécifié par pBrush.

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

Paramètres

pRgn
Pointe vers l’objet CRgn qui identifie la région à mettre entre parenthèses. Les coordonnées de la région donnée sont spécifiées en unités logiques.

pBrush
Pointe vers l’objet CBrush qui identifie le pinceau à utiliser pour dessiner la bordure.

nWidth
Spécifie la largeur de la bordure dans les traits de pinceau vertical dans les unités d’appareil.

nHeight
Spécifie la hauteur de la bordure dans les traits de pinceau horizontal dans les unités d’appareil.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Exemple

Consultez l’exemple pour CRgn::CombineRgn.

CDC::FromHandle

Retourne un pointeur vers un CDC objet lorsqu’un handle est donné à un contexte d’appareil.

static CDC* PASCAL FromHandle(HDC hDC);

Paramètres

hDC
Contient un handle vers un contexte d’appareil Windows.

Valeur de retour

Le pointeur peut être temporaire et ne doit pas être stocké au-delà de l’utilisation immédiate.

Notes

Si un CDC objet n’est pas attaché au handle, un objet temporaire CDC est créé et attaché.

Exemple

Consultez l’exemple pour CPrintDialog::GetPrinterDC.

CDC::GetArcDirection

Retourne la direction actuelle de l’arc pour le contexte de l’appareil.

int GetArcDirection() const;

Valeur de retour

Spécifie la direction actuelle de l’arc, si elle réussit. Voici les valeurs de retour valides :

  • AD_COUNTERCLOCKWISE Arcs et rectangles dessinés dans le sens inverse.

  • AD_CLOCKWISE Arcs et rectangles dessinés dans le sens des aiguilles d’une montre.

Si une erreur se produit, la valeur de retour est égale à zéro.

Notes

Les fonctions arc et rectangle utilisent le sens de l’arc.

CDC::GetAspectRatioFilter

Récupère le paramètre du filtre de rapport d’aspect actuel.

CSize GetAspectRatioFilter() const;

Valeur de retour

Objet CSize représentant le rapport d’aspect utilisé par le filtre de rapport d’aspect actuel.

Notes

Le rapport d’aspect est le ratio formé par la largeur et la hauteur des pixels d’un appareil. Les informations sur les proportions d’un appareil sont utilisées dans la création, la sélection et l’affichage des polices. Windows fournit un filtre spécial, le filtre de proportions, pour sélectionner des polices conçues pour un rapport d’aspect particulier parmi toutes les polices disponibles. Le filtre utilise le rapport d’aspect spécifié par la SetMapperFlags fonction membre.

CDC::GetBkColor

Retourne la couleur d’arrière-plan actuelle.

COLORREF GetBkColor() const;

Valeur de retour

Valeur de couleur RVB.

Notes

Si le mode d’arrière-plan est OPAQUE, le système utilise la couleur d’arrière-plan pour combler les lacunes dans les lignes styletées, les écarts entre les lignes hachées dans les pinceaux et l’arrière-plan dans les cellules de caractères. Le système utilise également la couleur d’arrière-plan lors de la conversion de bitmaps entre les contextes de couleur et d’appareil monochrome.

CDC ::GetBkMode

Retourne le mode d’arrière-plan.

int GetBkMode() const;

Valeur de retour

Mode d’arrière-plan actuel, qui peut être OPAQUE ou TRANSPARENT.

Notes

Le mode arrière-plan définit si le système supprime les couleurs d’arrière-plan existantes sur l’aire de dessin avant de dessiner du texte, des pinceaux hachés ou un stylet qui n’est pas un trait unie.

CDC::GetBoundsRect

Retourne le rectangle englobant cumulé actuel pour le contexte d’appareil spécifié.

UINT GetBoundsRect(
    LPRECT lpRectBounds,
    UINT flags);

Paramètres

lpRectBounds
Pointe vers une mémoire tampon qui recevra le rectangle englobant actuel. Le rectangle est retourné dans les coordonnées logiques.

flags
Spécifie si le rectangle englobant doit être effacé après son retour. Ce paramètre doit être égal à zéro ou défini sur la valeur suivante :

  • DCB_RESET Force l’effacement du rectangle englobant après son retour.

Valeur de retour

Spécifie l’état actuel du rectangle englobant si la fonction réussit. Il peut s’agir d’une combinaison des valeurs suivantes :

  • DCB_ACCUMULATE L’accumulation de rectangle englobant se produit.

  • DCB_RESET Le rectangle englobant est vide.

  • DCB_SET Le rectangle englobant n’est pas vide.

  • DCB_ENABLE L’accumulation englobante est activée.

  • DCB_DISABLE L’accumulation englobante est désactivée.

CDC::GetBrushOrg

Récupère l’origine (en unités d’appareil) du pinceau actuellement sélectionné pour le contexte de l’appareil.

CPoint GetBrushOrg() const;

Valeur de retour

Origine actuelle du pinceau (en unités d’appareil) en tant qu’objet CPoint .

Notes

L’origine initiale du pinceau est à (0,0) de la zone cliente. La valeur de retour spécifie ce point dans les unités d’appareil par rapport à l’origine de la fenêtre de bureau.

CDC::GetCharacterPlacement

Récupère différents types d’informations sur une chaîne de caractères.

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;

Paramètres

lpString
Pointeur vers la chaîne de caractères à traiter.

nCount
Spécifie la longueur de la chaîne. Pour la version ANSI, il s’agit d’un BYTE nombre et pour la fonction Unicode, il s’agit d’un WORD nombre. Pour plus d’informations, consultez GetCharacterPlacement.

nMaxExtent
Spécifie l’étendue maximale (en unités logiques) à laquelle la chaîne est traitée. Les caractères qui, s’ils sont traités, dépassent cette étendue sont ignorés. Les calculs pour les tableaux de classement ou de glyphes requis s’appliquent uniquement aux caractères inclus. Ce paramètre est utilisé uniquement si la GCP_MAXEXTENT valeur est spécifiée dans le dwFlags paramètre. Lorsque la fonction traite la chaîne d’entrée, chaque caractère et son étendue sont ajoutés à la sortie, à l’étendue et à d’autres tableaux uniquement si l’étendue totale n’a pas encore dépassé le maximum. Une fois la limite atteinte, le traitement s’arrête.

lpResults
Pointeur vers une GCP_Results structure qui reçoit les résultats de la fonction.

dwFlags
Spécifie comment traiter la chaîne dans les tableaux requis. Ce paramètre peut être une ou plusieurs des valeurs répertoriées dans la dwFlags section de la GetCharacterPlacement rubrique.

str
Pointeur vers un CString objet à traiter.

Valeur de retour

Si la fonction réussit, la valeur de retour est la largeur et la hauteur de la chaîne en unités logiques.

Si la fonction échoue, la valeur de retour est égale à zéro.

Notes

Cette fonction membre émule les fonctionnalités de la fonction GetCharacterPlacement, comme décrit dans le Kit de développement logiciel (SDK) Windows.

CDC::GetCharABCWidths

Récupère les largeurs des caractères consécutifs dans une plage spécifiée à partir de la police TrueType actuelle.

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

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

Paramètres

nFirstChar
Spécifie le premier caractère de la plage de caractères de la police actuelle pour laquelle les largeurs de caractères sont retournées.

nLastChar
Spécifie le dernier caractère de la plage de caractères de la police actuelle pour laquelle les largeurs de caractères sont retournées.

lpabc
Pointe vers un tableau de structures qui reçoivent les largeurs de ABC caractères lorsque la fonction retourne. Ce tableau doit contenir au moins autant de ABC structures qu’il existe de caractères dans la plage spécifiée par les paramètres et nLastChar les nFirstChar paramètres.

lpABCF
Pointe vers une mémoire tampon fournie par l’application avec un tableau de structures pour recevoir les largeurs de ABCFLOAT caractères lorsque la fonction retourne. Les largeurs retournées par cette fonction sont au format à virgule flottante IEEE.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Les largeurs sont retournées en unités logiques. Cette fonction réussit uniquement avec les polices TrueType.

Le rastériseur TrueType fournit un espacement de caractères « ABC » une fois qu’une taille de point spécifique a été sélectionnée. L’espacement « A » est la distance qui est ajoutée à la position actuelle avant de placer le glyphe. L’espacement « B » est la largeur de la partie noire du glyphe. L’espacement « C » est ajouté à la position actuelle pour tenir compte de l’espace blanc à droite du glyphe. La largeur avancée totale est donnée par A + B + C.

Lorsque la GetCharABCWidths fonction membre récupère des largeurs négatives « A » ou « C » pour un caractère, ce caractère inclut des sous-porte ou des surplombs.

Pour convertir les largeurs ABC en unités de conception de police, une application doit créer une police dont la hauteur (telle que spécifiée dans le lfHeight membre de la LOGFONT structure) est égale à la valeur stockée dans le ntmSizeEM membre de la NEWTEXTMETRIC structure. (La valeur du ntmSizeEM membre peut être récupérée en appelant la EnumFontFamilies fonction Windows.)

Les largeurs ABC du caractère par défaut sont utilisées pour les caractères qui se trouvent en dehors de la plage de la police actuellement sélectionnée.

Pour récupérer les largeurs de caractères dans les polices non TrueType, les applications doivent utiliser la GetCharWidth fonction Windows.

CDC::GetCharABCWidthsI

Récupère les largeurs, en unités logiques, des index de glyphe consécutifs dans une plage spécifiée à partir de la police TrueType actuelle.

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

Paramètres

giFirst
Spécifie le premier index de glyphe dans le groupe d’index de glyphe consécutifs de la police actuelle. Ce paramètre est utilisé uniquement si le pgi paramètre est NULL.

cgi
Spécifie le nombre d’index de glyphe.

pgi
Pointeur vers un tableau contenant des index de glyphe. Si la valeur est NULL, le paramètre est utilisé à la giFirst place. Le cgi paramètre spécifie le nombre d’index de glyphe dans ce tableau.

lpabc
Pointeur vers un tableau de ABC structures recevant les largeurs de caractères. Ce tableau doit contenir au moins autant de ABC structures que les index de glyphe spécifiés par le cgi paramètre.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Cette fonction membre émule les fonctionnalités de la fonction GetCharABCWidthsI, comme décrit dans le Kit de développement logiciel (SDK) Windows.

CDC::GetCharWidth

Récupère les largeurs des caractères individuels dans un groupe consécutif de caractères de la police actuelle, à l’aide m_hAttribDCdu contexte d’appareil d’entrée.

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

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

Paramètres

nFirstChar
Spécifie le premier caractère d’un groupe consécutif de caractères dans la police active.

nLastChar
Spécifie le dernier caractère d’un groupe consécutif de caractères dans la police active.

lpBuffer
Pointe vers une mémoire tampon qui recevra les valeurs de largeur d’un groupe consécutif de caractères dans la police actuelle.

lpFloatBuffer
Pointe vers une mémoire tampon pour recevoir les largeurs de caractères. Les largeurs retournées sont au format à virgule flottante IEEE 32 bits. (Les largeurs sont mesurées le long de la ligne de base des caractères.)

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Par exemple, si nFirstChar elle identifie la lettre 'a' et nLastChar identifie la lettre 'z', la fonction récupère les largeurs de tous les caractères minuscules.

La fonction stocke les valeurs dans la mémoire tampon pointée par lpBuffer. Cette mémoire tampon doit être suffisamment grande pour contenir toutes les largeurs. Autrement dit, il doit y avoir au moins 26 entrées dans l’exemple donné.

Si un caractère dans le groupe consécutif de caractères n’existe pas dans une police particulière, il reçoit la valeur de largeur du caractère par défaut.

CDC::GetCharWidthI

Récupère les largeurs, en coordonnées logiques, des index de glyphe consécutifs dans une plage spécifiée à partir de la police actuelle.

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

Paramètres

giFirst
Spécifie le premier index de glyphe dans le groupe d’index de glyphe consécutifs de la police actuelle. Ce paramètre est utilisé uniquement si le pgi paramètre est NULL.

cgi
Spécifie le nombre d’index de glyphe.

pgi
Pointeur vers un tableau contenant des index de glyphe. Si la valeur est NULL, le paramètre est utilisé à la giFirst place. Le cgi paramètre spécifie le nombre d’index de glyphe dans ce tableau.

lpBuffer
Pointeur vers une mémoire tampon qui reçoit les largeurs.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Cette fonction membre émule les fonctionnalités de la fonction GetCharWidthI, comme décrit dans le Kit de développement logiciel (SDK) Windows.

CDC::GetClipBox

Récupère les dimensions du rectangle englobant le plus serré autour de la limite de découpage actuelle.

virtual int GetClipBox(LPRECT lpRect) const;

Paramètres

lpRect
Pointe vers la structure ou CRect l’objet RECT qui doit recevoir les dimensions du rectangle.

Valeur de retour

Type de la région de découpage. Il peut s’agir de l’une des valeurs suivantes :

  • COMPLEXREGION La zone de découpage comporte des bordures qui se chevauchent.

  • ERROR Le contexte de l’appareil n’est pas valide.

  • NULLREGION La zone de découpage est vide.

  • SIMPLEREGION La zone de découpage n’a pas de bordures qui se chevauchent.

Notes

Les dimensions sont copiées dans la mémoire tampon pointée par lpRect.

CDC::GetColorAdjustment

Récupère les valeurs d’ajustement des couleurs pour le contexte de l’appareil.

BOOL GetColorAdjustment(LPCOLORADJUSTMENT lpColorAdjust) const;

Paramètres

lpColorAdjust
Pointe vers une COLORADJUSTMENT structure de données pour recevoir les valeurs d’ajustement des couleurs.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

CDC::GetCurrentBitmap

Retourne un pointeur vers l’objet actuellement sélectionné CBitmap .

CBitmap* GetCurrentBitmap() const;

Valeur de retour

Pointeur vers un CBitmap objet, s’il réussit ; sinon NULL.

Notes

Cette fonction membre peut retourner des objets temporaires.

CDC::GetCurrentBrush

Retourne un pointeur vers l’objet actuellement sélectionné CBrush .

CBrush* GetCurrentBrush() const;

Valeur de retour

Pointeur vers un CBrush objet, s’il réussit ; sinon NULL.

Notes

Cette fonction membre peut retourner des objets temporaires.

CDC::GetCurrentFont

Retourne un pointeur vers l’objet actuellement sélectionné CFont .

CFont* GetCurrentFont() const;

Valeur de retour

Pointeur vers un CFont objet, s’il réussit ; sinon NULL.

Notes

Cette fonction membre peut retourner des objets temporaires.

CDC::GetCurrentPalette

Retourne un pointeur vers l’objet actuellement sélectionné CPalette .

CPalette* GetCurrentPalette() const;

Valeur de retour

Pointeur vers un CPalette objet, s’il réussit ; sinon NULL.

Notes

Cette fonction membre peut retourner des objets temporaires.

CDC::GetCurrentPen

Retourne un pointeur vers l’objet actuellement sélectionné CPen .

CPen* GetCurrentPen() const;

Valeur de retour

Pointeur vers un CPen objet, s’il réussit ; sinon NULL.

Notes

Cette fonction membre peut retourner des objets temporaires.

CDC::GetCurrentPosition

Récupère la position actuelle (en coordonnées logiques).

CPoint GetCurrentPosition() const;

Valeur de retour

Position actuelle en tant qu’objet CPoint .

Notes

La position actuelle peut être définie avec la MoveTo fonction membre.

CDC::GetDCBrushColor

Récupère la couleur actuelle du pinceau.

COLORREF GetDCBrushColor() const;

Valeur de retour

Si la fonction réussit, la valeur de retour est la COLORREF valeur de la couleur de pinceau actuelle.

Si la fonction échoue, la valeur de retour est CLR_INVALID.

Notes

Cette fonction membre émule les fonctionnalités de la fonction GetDCBrushColor, comme décrit dans le Kit de développement logiciel (SDK) Windows.

CDC::GetDCPenColor

Récupère la couleur actuelle du stylet.

COLORREF GetDCPenColor() const;

Valeur de retour

Si la fonction réussit, la valeur de retour est la COLORREF valeur de la couleur de stylet actuelle.

Si la fonction échoue, la valeur de retour est CLR_INVALID.

Notes

Cette fonction membre utilise la fonction GetDCPenColorWin32, comme décrit dans le Kit de développement logiciel (SDK) Windows.

CDC::GetDeviceCaps

Récupère une large gamme d’informations spécifiques à l’appareil sur l’appareil d’affichage.

int GetDeviceCaps(int nIndex) const;

Paramètres

nIndex
Spécifie le type d’informations à retourner. Consultez GetDeviceCaps le Kit de développement logiciel (SDK) Windows pour obtenir la liste des valeurs.

Valeur de retour

Valeur de la fonctionnalité demandée si la fonction réussit.

Exemple

Consultez l’exemple pour CPrintDialog::GetDefaults.

CDC::GetFontData

Récupère les informations de métrique de police à partir d’un fichier de police évolutif.

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

Paramètres

dwTable
Spécifie le nom de la table de métriques à renvoyer. Ce paramètre peut être l’une des tables de métriques documentées dans la spécification TrueType Font Files publiée par Microsoft Corporation. Si ce paramètre est 0, les informations sont récupérées à partir du début du fichier de police.

dwOffset
Spécifie le décalage du début de la table à laquelle commencer la récupération des informations. Si ce paramètre est 0, les informations sont récupérées à partir du début de la table spécifiée par le dwTable paramètre. Si cette valeur est supérieure ou égale à la taille de la table, GetFontData retourne 0.

lpData
Pointe vers une mémoire tampon qui recevra les informations de police. Si cette valeur est NULL, la fonction retourne la taille de la mémoire tampon requise pour les données de police spécifiées dans le dwTable paramètre.

cbData
Spécifie la longueur, en octets, des informations à récupérer. Si ce paramètre est 0, GetFontData retourne la taille des données spécifiées dans le dwTable paramètre.

Valeur de retour

Spécifie le nombre d’octets retournés dans la mémoire tampon pointée par lpData si la fonction réussit ; sinon -1.

Notes

Les informations à récupérer sont identifiées en spécifiant un décalage dans le fichier de police et la longueur des informations à retourner.

Une application peut parfois utiliser la GetFontData fonction membre pour enregistrer une police TrueType avec un document. Pour ce faire, l’application détermine si la police peut être incorporée, puis récupère l’intégralité du fichier de police, en spécifiant 0 pour les paramètres et cbData les dwTabledwOffsetparamètres.

Les applications peuvent déterminer si une police peut être incorporée en vérifiant le otmfsType membre de la OUTLINETEXTMETRIC structure. Si le bit 1 est otmfsType défini, l’incorporation n’est pas autorisée pour la police. Si le bit 1 est clair, la police peut être incorporée. Si le bit 2 est défini, l’incorporation est en lecture seule.

Si une application tente d’utiliser cette fonction pour récupérer des informations pour une police non TrueType, la GetFontData fonction membre retourne -1.

CDC::GetFontLanguageInfo

Retourne des informations sur la police actuellement sélectionnée pour le contexte d’affichage spécifié.

DWORD GetFontLanguageInfo() const;

Valeur de retour

La valeur de retour identifie les caractéristiques de la police actuellement sélectionnée. Pour obtenir une liste complète des valeurs possibles, consultez GetFontLanguageInfo.

Notes

Cette fonction membre émule les fonctionnalités de la fonction GetFontLanguageInfo, comme décrit dans le Kit de développement logiciel (SDK) Windows.

CDC::GetGlyphOutline

Récupère la courbe de contour ou la bitmap d’un caractère de plan dans la police actuelle.

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

Paramètres

nChar
Spécifie le caractère pour lequel les informations doivent être retournées.

nFormat
Spécifie le format dans lequel la fonction doit retourner des informations. Il peut s’agir de l’une des valeurs suivantes, ou 0 :

Valeur Signification
GGO_BITMAP Retourne la bitmap de glyphe. Lorsque la fonction est retournée, la mémoire tampon pointe vers laquelle lpBuffer se trouve une bitmap de 1 bits par pixel dont les lignes commencent par des limites à double mot.
GGO_NATIVE Retourne les points de données de courbe dans le format natif du rastériseur, à l’aide d’unités d’appareil. Lorsque cette valeur est spécifiée, toute transformation spécifiée est lpmat2 ignorée.

Lorsque la valeur est nFormat 0, la fonction remplit une GLYPHMETRICS structure, mais ne retourne pas de données de plan de glyphe.

lpgm
Pointe vers une GLYPHMETRICS structure qui décrit le positionnement du glyphe dans la cellule de caractère.

cbBuffer
Spécifie la taille de la mémoire tampon dans laquelle la fonction copie des informations sur le caractère hiérarchique. Si cette valeur est 0 et que le nFormat paramètre est le GGO_BITMAP ou GGO_NATIVE les valeurs, la fonction retourne la taille requise de la mémoire tampon.

lpBuffer
Pointe vers une mémoire tampon dans laquelle la fonction copie des informations sur le caractère hiérarchique. Si nFormat elle spécifie la GGO_NATIVE valeur, les informations sont copiées sous la forme et TTPOLYGONHEADER TTPOLYCURVE les structures. Si cette valeur est NULL la nFormat GGO_BITMAP ou GGO_NATIVE la valeur, la fonction retourne la taille requise de la mémoire tampon.

lpmat2
Pointe vers une MAT2 structure qui contient une matrice de transformation pour le caractère. Ce paramètre ne peut pas être NULL, même lorsque la GGO_NATIVE valeur est spécifiée pour nFormat.

Valeur de retour

Taille, en octets, de la mémoire tampon requise pour les informations récupérées si cbBuffer la valeur est 0 ou lpBuffer est NULL. Sinon, il s’agit d’une valeur positive si la fonction réussit ou -1 en cas d’erreur.

Notes

Une application peut faire pivoter les caractères récupérés au format bitmap en spécifiant une matrice de transformation de 2 par 2 dans la structure pointée par lpmat2.

Un contour de glyphe est retourné sous la forme d’une série de contours. Chaque contour est défini par une TTPOLYGONHEADER structure suivie d’autant de TTPOLYCURVE structures que nécessaire pour la décrire. Tous les points sont retournés en tant que POINTFX structures et représentent des positions absolues, et non des déplacements relatifs. Le point de départ donné par le pfxStart membre de la TTPOLYGONHEADER structure est le point auquel commence le contour d’un contour. Les TTPOLYCURVE structures qui suivent peuvent être des enregistrements polylignes ou des enregistrements spline. Les enregistrements Polyline sont une série de points ; les lignes dessinées entre les points décrivent le contour du caractère. Les enregistrements spline représentent les courbes quadratiques utilisées par TrueType (autrement dit, les courbes b-spline quadratiques).

CDC::GetGraphicsMode

Récupère le mode graphique actuel pour le contexte d’appareil spécifié.

int GetGraphicsMode() const;

Valeur de retour

Retourne le mode graphique actuel en cas de réussite. Pour obtenir la liste des valeurs que cette méthode peut retourner, consultez GetGraphicsMode.

Retourne 0 en cas d’échec.

Pour obtenir des informations plus complètes sur les erreurs, appelez GetLastError.

Notes

Cette méthode encapsule la fonction GetGraphicsModeGDI Windows .

CDC::GetHalftoneBrush

Appelez cette fonction membre pour récupérer un pinceau demi-teinte.

static CBrush* PASCAL GetHalftoneBrush();

Valeur de retour

Pointeur vers un CBrush objet en cas de réussite ; sinon NULL.

Notes

Un pinceau à demi-teinte affiche des pixels qui sont alternativement au premier plan et aux couleurs d’arrière-plan pour créer un motif dithered. Le diagramme suivant montre un exemple de modèle dithered créé par un pinceau à demi-teinte :

Diagramme montrant comment un trait de stylet dither est composé.

Le diagramme montre comment la couleur d’arrière-plan du noir et la couleur de premier plan du jaune sont combinées en un motif en alternant les pixels noir et jaune entre eux pour créer un trait de stylet dither.

CDC::GetKerningPairs

Récupère les paires de crénages de caractères pour la police actuellement sélectionnée dans le contexte d’appareil spécifié.

int GetKerningPairs(
    int nPairs,
    LPKERNINGPAIR lpkrnpair) const;

Paramètres

nPairs
Spécifie le nombre de KERNINGPAIR structures pointées par lpkrnpair. La fonction ne copiera pas plus de paires de crénages que spécifiées par nPairs.

lpkrnpair
Pointe vers un tableau de KERNINGPAIR structures qui reçoivent les paires de crénage lorsque la fonction retourne. Ce tableau doit contenir au moins autant de structures que spécifiées par nPairs. Si ce paramètre est NULL, la fonction retourne le nombre total de paires de crénages pour la police.

Valeur de retour

Spécifie le nombre de paires de crénage récupérées ou le nombre total de paires de crénage dans la police, si la fonction réussit. Zéro est retourné si la fonction échoue ou qu’il n’y a pas de paires de crénages pour la police.

CDC::GetLayout

Appelez cette fonction membre pour déterminer la disposition du texte et des graphiques pour un contexte d’appareil, tel qu’une imprimante ou un métafichier.

DWORD GetLayout() const;

Valeur de retour

Si elle réussit, les indicateurs de disposition pour le contexte actuel de l’appareil. Sinon, GDI_ERROR. Pour obtenir des informations d’erreur étendues, appelez GetLastError. Pour obtenir la liste des indicateurs de disposition, consultez CDC::SetLayout.

Notes

La disposition par défaut est de gauche à droite.

CDC::GetMapMode

Récupère le mode de mappage actuel.

int GetMapMode() const;

Valeur de retour

Mode de mappage.

Notes

Pour obtenir une description des modes de mappage, consultez la SetMapMode fonction membre.

Remarque

Si vous appelez SetLayout pour modifier le contrôleur de domaine en disposition de droite à gauche, SetLayout modifie automatiquement le mode MM_ISOTROPICde mappage en . Par conséquent, tout appel ultérieur à retourner GetMapMode MM_ISOTROPIC.

CDC::GetMiterLimit

Retourne la limite de mitreur pour le contexte de l’appareil.

float GetMiterLimit() const;

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

La limite de mitreur est utilisée lors du dessin de lignes géométriques qui ont des jointures mitéreuse.

CDC::GetNearestColor

Retourne la couleur unie qui correspond le mieux à une couleur logique spécifiée.

COLORREF GetNearestColor(COLORREF crColor) const;

Paramètres

crColor
Spécifie la couleur à mettre en correspondance.

Valeur de retour

Valeur de couleur RVB (rouge, vert, bleu) qui définit la couleur unie la plus proche de la crColor valeur que l’appareil peut représenter.

Notes

L’appareil donné doit être en mesure de représenter cette couleur.

CDC::GetOutlineTextMetrics

Récupère les informations de métrique pour les polices TrueType.

UINT GetOutlineTextMetrics(
    UINT cbData,
    LPOUTLINETEXTMETRIC lpotm) const;

Paramètres

lpotm
Pointe vers un tableau de OUTLINETEXTMETRIC structures. Si ce paramètre est NULL, la fonction retourne la taille de la mémoire tampon requise pour les données de métrique récupérées.

cbData
Spécifie la taille, en octets, de la mémoire tampon à laquelle les informations sont retournées.

lpotm
Pointe vers une OUTLINETEXTMETRIC structure. Si ce paramètre est NULLle cas, la fonction retourne la taille de la mémoire tampon requise pour les informations de métrique récupérées.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

La OUTLINETEXTMETRIC structure contient la plupart des informations de métrique de police fournies avec le format TrueType, y compris une TEXTMETRIC structure. Les quatre derniers membres de la OUTLINETEXTMETRIC structure sont des pointeurs vers des chaînes. Les applications doivent allouer de l’espace pour ces chaînes en plus de l’espace requis pour les autres membres. Étant donné qu’il n’existe aucune limite imposée par le système à la taille des chaînes, la méthode la plus simple pour allouer de la mémoire consiste à récupérer la taille requise en spécifiant NULL pour lpotm le premier appel à la GetOutlineTextMetrics fonction.

CDC::GetOutputCharWidth

Utilise le contexte de l’appareil de sortie, m_hDCet récupère les largeurs des caractères individuels dans un groupe consécutif de caractères de la police actuelle.

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

Paramètres

nFirstChar
Spécifie le premier caractère d’un groupe consécutif de caractères dans la police active.

nLastChar
Spécifie le dernier caractère d’un groupe consécutif de caractères dans la police active.

lpBuffer
Pointe vers une mémoire tampon qui recevra les valeurs de largeur d’un groupe consécutif de caractères dans la police actuelle.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Par exemple, si nFirstChar elle identifie la lettre 'a' et nLastChar identifie la lettre 'z', la fonction récupère les largeurs de tous les caractères minuscules.

La fonction stocke les valeurs dans la mémoire tampon pointée par lpBuffer. Cette mémoire tampon doit être suffisamment grande pour contenir toutes les largeurs ; autrement dit, il doit y avoir au moins 26 entrées dans l’exemple donné.

Si un caractère dans le groupe consécutif de caractères n’existe pas dans une police particulière, il reçoit la valeur de largeur du caractère par défaut.

CDC::GetOutputTabbedTextExtent

Appelez cette fonction membre pour calculer la largeur et la hauteur d’une chaîne de caractères à l’aide m_hDCdu contexte de l’appareil de sortie.

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

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

Paramètres

lpszString
Pointe vers une chaîne de caractères à mesurer. Vous pouvez également transmettre un CString objet pour ce paramètre.

nCount
Spécifie la longueur de la chaîne pointée par lpszString.

nTabPositions
Spécifie le nombre de positions de taquet de tabulation dans le tableau pointé par lpnTabStopPositions.

lpnTabStopPositions
Pointe vers un tableau d’entiers contenant les positions de taquet de tabulation en unités logiques. Les taquets de tabulation doivent être triés dans l’ordre croissant ; la plus petite valeur x doit être le premier élément du tableau. Les onglets précédents ne sont pas autorisés.

str
Objet CString qui contient les caractères spécifiés à mesurer.

Valeur de retour

Dimensions de la chaîne (en unités logiques) dans un CSize objet.

Notes

Si la chaîne contient un ou plusieurs caractères de tabulation, la largeur de la chaîne est basée sur les taquets de tabulation spécifiés par lpnTabStopPositions. La fonction utilise la police actuellement sélectionnée pour calculer les dimensions de la chaîne.

La zone de découpage actuelle ne décalera pas la largeur et la hauteur retournées par la GetOutputTabbedTextExtent fonction.

Étant donné que certains appareils ne placent pas de caractères dans des tableaux de cellules régulières (autrement dit, ils kènent les caractères), la somme des étendues des caractères d’une chaîne peut ne pas être égale à l’étendue de la chaîne.

S’il nTabPositions s’agit de 0 et lpnTabStopPositions est NULL, les onglets sont étendus à huit largeurs de caractères moyennes. Si nTabPositions la valeur est 1, les taquets de tabulation sont séparés par la distance spécifiée par la première valeur du tableau vers laquelle lpnTabStopPositions pointe. Si lpnTabStopPositions elle pointe vers plus d’une valeur unique, un taquet de tabulation est défini pour chaque valeur du tableau, jusqu’au nombre spécifié par nTabPositions.

CDC::GetOutputTextExtent

Appelez cette fonction membre pour utiliser le contexte de l’appareil de sortie, m_hDCet calculer la largeur et la hauteur d’une ligne de texte à l’aide de la police actuelle.

CSize GetOutputTextExtent(
    LPCTSTR lpszString,
    int nCount) const;

CSize GetOutputTextExtent(const CString& str) const;

Paramètres

lpszString
Pointe vers une chaîne de caractères. Vous pouvez également transmettre un CString objet pour ce paramètre.

nCount
Spécifie la longueur de la chaîne pointée par lpszString.

str
Objet CString qui contient les caractères spécifiés à mesurer.

Valeur de retour

Dimensions de la chaîne (en unités logiques) retournées dans un CSize objet.

Notes

La zone de découpage actuelle n’affecte pas la largeur et la hauteur retournées par GetOutputTextExtent.

Étant donné que certains appareils ne placent pas de caractères dans des tableaux de cellules standard (autrement dit, ils effectuent un crénage), la somme des étendues des caractères d’une chaîne peut ne pas être égale à l’étendue de la chaîne.

CDC::GetOutputTextMetrics

Récupère les métriques de la police actuelle à l’aide m_hDCdu contexte de l’appareil de sortie.

BOOL GetOutputTextMetrics(LPTEXTMETRIC lpMetrics) const;

Paramètres

lpMetrics
Pointe vers la TEXTMETRIC structure qui reçoit les métriques.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

CDC::GetPath

Récupère les coordonnées définissant les points de terminaison des lignes et les points de contrôle des courbes trouvés dans le chemin d’accès sélectionné dans le contexte de l’appareil.

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

Paramètres

lpPoints
Pointe vers un tableau de structures de données ou CPoint d’objets POINT où les points de terminaison de ligne et les points de contrôle de courbe sont placés.

lpTypes
Pointe vers un tableau d’octets où les types de vertex sont placés. Les valeurs sont l’une des suivantes :

  • PT_MOVETO Spécifie que le point correspondant dans lpPoints démarre une figure disjointe.

  • PT_LINETO Spécifie que le point précédent et le point lpPoints correspondant sont les points de terminaison d’une ligne.

  • PT_BEZIERTO Spécifie que le point correspondant est lpPoints un point de contrôle ou un point de terminaison pour une courbe Bzier.

PT_BEZIERTO les types se produisent toujours dans les ensembles de trois. Le point dans le chemin qui les précède immédiatement définit le point de départ de la courbe Bzier. Les deux PT_BEZIERTO premiers points sont les points de contrôle, et le troisième PT_BEZIERTO point est le point de terminaison (s’il est codé en dur).

Un PT_LINETO ou PT_BEZIERTO type peut être combiné avec l’indicateur suivant (à l’aide de l’opérateur au niveau du bit OR) pour indiquer que le point correspondant est le dernier point d’une figure et que la figure doit être fermée :

  • PT_CLOSEFIGURE Spécifie que la figure est automatiquement fermée une fois la ligne ou la courbe correspondante dessinée. La figure est fermée en dessinant une ligne du point de terminaison de ligne ou de courbe au point correspondant au dernier PT_MOVETO.

nCount
Spécifie le nombre total de structures de POINT données qui peuvent être placées dans le lpPoints tableau. Cette valeur doit être identique au nombre d’octets qui peuvent être placés dans le lpTypes tableau.

Valeur de retour

Si le nCount paramètre n’est pas différent de zéro, le nombre de points énumérés. Si nCount la valeur est 0, nombre total de points dans le chemin d’accès (et GetPath n’écrit rien dans les mémoires tampons). Si nCount elle n’est pas nulle et est inférieure au nombre de points dans le chemin, la valeur de retour est -1.

Notes

Le contexte de l’appareil doit contenir un chemin fermé. Les points du chemin d’accès sont retournés dans les coordonnées logiques. Les points sont stockés dans le chemin d’accès dans les coordonnées de l’appareil, ce qui GetPath modifie les points des coordonnées de l’appareil en coordonnées logiques à l’aide de l’inverse de la transformation actuelle. La FlattenPath fonction membre peut être appelée avant GetPath, pour convertir toutes les courbes du chemin en segments de ligne.

Exemple

Consultez l’exemple pour CDC::BeginPath.

CDC::GetPixel

Récupère la valeur de couleur RVB du pixel au point spécifié par x et *y*.

COLORREF GetPixel(
    int x,
    int y) const;

COLORREF GetPixel(POINT point) const;

Paramètres

x
Spécifie la coordonnée x logique du point à examiner.

y
Spécifie la coordonnée y logique du point à examiner.

point
Spécifie les coordonnées x et y logiques du point à examiner.

Valeur de retour

Pour l’une ou l’autre version de la fonction, valeur de couleur RVB pour la couleur du point donné. Il s’agit de -1 si les coordonnées ne spécifient pas de point dans la région de découpage.

Notes

Le point doit se trouver dans la région de découpage. Si le point n’est pas dans la région de découpage, la fonction n’a aucun effet et retourne -1.

La fonction GetPixel n'est pas prise en charge par tous les périphériques. Pour plus d’informations, consultez la RC_BITBLT fonctionnalité raster sous la GetDeviceCaps fonction membre.

La GetPixel fonction membre a deux formes. La première prend deux valeurs de coordonnées ; la seconde prend une POINT structure ou un CPoint objet.

CDC::GetPolyFillMode

Récupère le mode de remplissage de polygone actuel.

int GetPolyFillMode() const;

Valeur de retour

Mode rempli de polygones ALTERNATE actuel ou WINDING, si la fonction réussit.

Notes

Consultez la SetPolyFillMode fonction membre pour obtenir une description des modes de remplissage de polygones.

CDC::GetROP2

Récupère le mode de dessin actuel.

int GetROP2() const;

Valeur de retour

Mode dessin. Pour obtenir la liste des valeurs du mode dessin, consultez la SetROP2 fonction membre.

Notes

Le mode dessin spécifie comment les couleurs du stylet et de l’intérieur des objets remplis sont combinées à la couleur déjà sur l’aire d’affichage.

CDC::GetSafeHdc

Appelez cette fonction membre pour obtenir m_hDC, le contexte de l’appareil de sortie.

HDC GetSafeHdc() const;

Valeur de retour

Handle de contexte d’appareil.

Notes

Cette fonction membre fonctionne également avec des pointeurs Null.

CDC::GetStretchBltMode

Récupère le mode d’étirement bitmap actuel.

int GetStretchBltMode() const;

Valeur de retour

La valeur de retour spécifie le mode d’étirement bitmap actuel ( STRETCH_ANDSCANSou STRETCH_ORSCANS STRETCH_DELETESCANS) si la fonction réussit.

Notes

Le mode d’étirement bitmap définit la façon dont les informations sont supprimées des bitmaps qui sont étirées ou compressées par la StretchBlt fonction membre.

Les STRETCH_ANDSCANS modes et STRETCH_ORSCANS les modes sont généralement utilisés pour conserver les pixels de premier plan dans les bitmaps monochromes. Le STRETCH_DELETESCANS mode est généralement utilisé pour conserver la couleur dans les bitmaps de couleur.

CDC::GetTabbedTextExtent

Appelez cette fonction membre pour calculer la largeur et la hauteur d’une chaîne de caractères à l’aide m_hAttribDCdu contexte de l’appareil d’attribut.

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

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

Paramètres

lpszString
Pointe vers une chaîne de caractères. Vous pouvez également transmettre un CString objet pour ce paramètre.

nCount
Spécifie la longueur de la chaîne pointée par lpszString.

nTabPositions
Spécifie le nombre de positions de taquet de tabulation dans le tableau pointé par lpnTabStopPositions.

lpnTabStopPositions
Pointe vers un tableau d’entiers contenant les positions de taquet de tabulation en unités logiques. Les taquets de tabulation doivent être triés dans l’ordre croissant ; la plus petite valeur x doit être le premier élément du tableau. Les onglets précédents ne sont pas autorisés.

str
Objet CString qui contient les caractères spécifiés à dessiner.

Valeur de retour

Dimensions de la chaîne (en unités logiques) dans un CSize objet.

Notes

Si la chaîne contient un ou plusieurs caractères de tabulation, la largeur de la chaîne est basée sur les taquets de tabulation spécifiés par lpnTabStopPositions. La fonction utilise la police actuellement sélectionnée pour calculer les dimensions de la chaîne.

La zone de découpage actuelle ne décalera pas la largeur et la hauteur retournées par la GetTabbedTextExtent fonction.

Étant donné que certains appareils ne placent pas de caractères dans des tableaux de cellules régulières (autrement dit, ils kènent les caractères), la somme des étendues des caractères d’une chaîne peut ne pas être égale à l’étendue de la chaîne.

S’il nTabPositions s’agit de 0 et lpnTabStopPositions est NULL, les onglets sont étendus à huit fois la largeur moyenne des caractères. Si nTabPositions la valeur est 1, les taquets de tabulation sont séparés par la distance spécifiée par la première valeur du tableau vers laquelle lpnTabStopPositions pointe. Si lpnTabStopPositions elle pointe vers plus d’une valeur unique, un taquet de tabulation est défini pour chaque valeur du tableau, jusqu’au nombre spécifié par nTabPositions.

CDC::GetTextAlign

Récupère l’état des indicateurs d’alignement de texte pour le contexte de l’appareil.

UINT GetTextAlign() const;

Valeur de retour

État des indicateurs d’alignement du texte. La valeur de retour est une ou plusieurs des valeurs suivantes :

  • TA_BASELINE Spécifie l’alignement de l’axe x et la ligne de base de la police choisie dans le rectangle englobant.

  • TA_BOTTOM Spécifie l’alignement de l’axe x et du bas du rectangle englobant.

  • TA_CENTER Spécifie l’alignement de l’axe y et le centre du rectangle englobant.

  • TA_LEFT Spécifie l’alignement de l’axe y et du côté gauche du rectangle englobant.

  • TA_NOUPDATECP Spécifie que la position actuelle n’est pas mise à jour.

  • TA_RIGHT Spécifie l’alignement de l’axe y et du côté droit du rectangle englobant.

  • TA_TOP Spécifie l’alignement de l’axe x et du haut du rectangle englobant.

  • TA_UPDATECP Spécifie que la position actuelle est mise à jour.

Notes

Les indicateurs d’alignement du texte déterminent la façon dont les TextOut fonctions membres ExtTextOut alignent une chaîne de texte par rapport au point de départ de la chaîne. Les indicateurs d’alignement du texte ne sont pas nécessairement des indicateurs mono bits et peuvent être 0. Pour tester si un indicateur est défini, une application doit suivre les étapes suivantes :

  1. Appliquez l’opérateur OR au niveau du bit (|) à l’indicateur et à ses indicateurs associés, regroupés comme suit :

    • TA_LEFT, TA_CENTER et TA_RIGHT

    • TA_BASELINE, TA_BOTTOM et TA_TOP

    • TA_NOUPDATECP et TA_UPDATECP

  2. Appliquez l’opérateur AND () au niveau du bit C++ au résultat et à la valeur de retour de GetTextAlign.&

  3. Testez l’égalité de ce résultat et de l’indicateur.

CDC::GetTextCharacterExtra

Récupère le paramètre actuel de l’espacement intercharacteur.

int GetTextCharacterExtra() const;

Valeur de retour

Quantité d’espacement intercharacteur.

Notes

GDI ajoute cet espacement à chaque caractère, y compris les caractères d’arrêt, lorsqu’il écrit une ligne de texte dans le contexte de l’appareil.

La valeur par défaut de l’espacement intercharacteur est 0.

CDC::GetTextColor

Récupère la couleur de texte actuelle.

COLORREF GetTextColor() const;

Valeur de retour

Couleur de texte actuelle sous forme de valeur de couleur RVB.

Notes

La couleur du texte est la couleur de premier plan des caractères dessinés à l’aide des fonctions TextOutmembres de sortie de texte GDI, ExtTextOutet TabbedTextOut.

CDC::GetTextExtent

Appelez cette fonction membre pour calculer la largeur et la hauteur d’une ligne de texte à l’aide de la police actuelle pour déterminer les dimensions.

CSize GetTextExtent(
    LPCTSTR lpszString,
    int nCount) const;

CSize GetTextExtent(const CString& str) const;

Paramètres

lpszString
Pointe vers une chaîne de caractères. Vous pouvez également transmettre un CString objet pour ce paramètre.

nCount
Spécifie le nombre de caractères de la chaîne.

str
Objet CString qui contient les caractères spécifiés.

Valeur de retour

Dimensions de la chaîne (en unités logiques) dans un CSize objet.

Notes

Les informations sont récupérées à partir du contexte de m_hAttribDCl’appareil d’attribut.

Par défaut, GetTextExtent part du principe que le texte pour lequel il récupère la dimension est défini le long d’une ligne horizontale (autrement dit, l’échappement est 0). Si vous créez une police spécifiant un échappement non nul, vous devez convertir explicitement l’angle du texte pour obtenir les dimensions de la chaîne.

La zone de découpage actuelle n’affecte pas la largeur et la hauteur retournées par GetTextExtent.

Étant donné que certains appareils ne placent pas de caractères dans des tableaux de cellules standard (autrement dit, ils effectuent un crénage), la somme des étendues des caractères d’une chaîne peut ne pas être égale à l’étendue de la chaîne.

CDC::GetTextExtentExPointI

Récupère le nombre de caractères d’une chaîne spécifiée qui s’intègre dans un espace spécifié et remplit un tableau avec l’étendue du texte pour chacun de ces caractères.

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

Paramètres

pgiIn
Pointeur vers un tableau d’index de glyphes pour lesquels les étendues doivent être récupérées.

cgi
Spécifie le nombre de glyphes dans le tableau pointé par pgiIn.

nMaxExtent
Spécifie la largeur maximale autorisée, en unités logiques, de la chaîne mise en forme.

lpnFit
Pointeur vers un entier qui reçoit le nombre maximal de caractères correspondant à l’espace spécifié par nMaxExtent. Quand lpnFit c’est NULLle cas, nMaxExtent est ignoré.

alpDx
Pointeur vers un tableau d’entiers qui reçoit des étendues de glyphe partielles. Chaque élément du tableau donne la distance, en unités logiques, entre le début du tableau d’indices de glyphe et l’un des glyphes qui s’adapte à l’espace spécifié par nMaxExtent. Bien que ce tableau ait au moins autant d’éléments que les index de glyphe spécifiés par cgi, la fonction remplit le tableau avec des étendues uniquement pour autant d’index de glyphe que spécifié par lpnFit. Si lpnDx c’est NULLle cas, la fonction ne calcule pas de largeurs de chaîne partielles.

lpSize
Pointeur vers une SIZE structure qui reçoit les dimensions du tableau d’index de glyphe, en unités logiques. Cette valeur ne peut pas être NULL.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Cette fonction membre émule les fonctionnalités de la fonction GetTextExtentExPointI, comme décrit dans le Kit de développement logiciel (SDK) Windows.

CDC::GetTextExtentPointI

Récupère la largeur et la hauteur du tableau spécifié d’indices de glyphe.

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

Paramètres

pgiIn
Pointeur vers un tableau d’index de glyphes pour lesquels les étendues doivent être récupérées.

cgi
Spécifie le nombre de glyphes dans le tableau pointé par pgiIn.

lpSize
Pointeur vers une SIZE structure qui reçoit les dimensions du tableau d’index de glyphe, en unités logiques. Cette valeur ne peut pas être NULL.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Cette fonction membre émule les fonctionnalités de la fonction GetTextExtentPointI, comme décrit dans le Kit de développement logiciel (SDK) Windows.

CDC::GetTextFace

Appelez cette fonction membre pour copier le nom de police de la police active dans une mémoire tampon.

int GetTextFace(
    int nCount,
    LPTSTR lpszFacename) const;

int GetTextFace(CString& rString) const;

Paramètres

nCount
Spécifie la taille de la mémoire tampon (en octets). Si le nom de la police est supérieur au nombre d’octets spécifié par ce paramètre, le nom est tronqué.

lpszFacename
Pointe vers la mémoire tampon pour le nom de la police.

rString
Référence à un objet CString.

Valeur de retour

Nombre d’octets copiés dans la mémoire tampon, sans inclure le caractère null de fin. Il s’agit de 0 si une erreur se produit.

Notes

Le nom de la police est copié sous forme de chaîne terminée par null.

CDC::GetTextMetrics

Récupère les métriques de la police actuelle à l’aide du contexte de l’appareil d’attribut.

BOOL GetTextMetrics(LPTEXTMETRIC lpMetrics) const;

Paramètres

lpMetrics
Pointe vers la TEXTMETRIC structure qui reçoit les métriques.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

CDC::GetViewportExt

Récupère les étendues x et y de la fenêtre d’affichage du contexte de l’appareil.

CSize GetViewportExt() const;

Valeur de retour

Étendues x et y (en unités d’appareil) en tant qu’objet CSize .

CDC::GetViewportOrg

Récupère les coordonnées x et y de l’origine de la fenêtre d’affichage associée au contexte de l’appareil.

CPoint GetViewportOrg() const;

Valeur de retour

Origine de la fenêtre d’affichage (dans les coordonnées de l’appareil) en tant qu’objet CPoint .

CDC::GetWindow

Retourne la fenêtre associée au contexte de l’appareil d’affichage.

CWnd* GetWindow() const;

Valeur de retour

Pointeur vers un CWnd objet en cas de réussite ; sinon NULL.

Notes

Il s’agit d’une fonction avancée. Par exemple, cette fonction membre peut ne pas retourner la fenêtre d’affichage lors de l’impression ou de l’aperçu avant impression. Elle retourne toujours la fenêtre associée à la sortie. Fonctions de sortie qui utilisent le dessin dc donné dans cette fenêtre.

CDC::GetWindowExt

Récupère les étendues x et y de la fenêtre associée au contexte de l’appareil.

CSize GetWindowExt() const;

Valeur de retour

Étendues x et y (en unités logiques) en tant qu’objet CSize .

CDC::GetWindowOrg

Récupère les coordonnées x et y de l’origine de la fenêtre associée au contexte de l’appareil.

CPoint GetWindowOrg() const;

Valeur de retour

Origine de la fenêtre (en coordonnées logiques) en tant qu’objet CPoint .

CDC::GetWorldTransform

Récupère l’espace mondial actuel à la transformation de l’espace de page.

BOOL GetWorldTransform(XFORM& rXform) const;

Paramètres

rXform
Référence à une XFORM structure qui reçoit l’espace mondial actuel à la transformation de l’espace de page.

Valeur de retour

Retourne une valeur différente de zéro en cas de réussite.

Retourne 0 en cas d’échec.

Pour obtenir des informations plus complètes sur les erreurs, appelez GetLastError.

Notes

Cette méthode encapsule la fonction GetWorldTransformGDI Windows .

CDC::GradientFill

Appelez cette fonction membre pour remplir des structures rectangle et triangle avec une couleur qui s’efface d’un côté à l’autre.

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

Paramètres

pVertices
Pointeur vers un tableau de TRIVERTEX structures qui définissent chacun un sommet triangle.

nVertices
Nombre de sommets.

pMesh
Tableau de GRADIENT_TRIANGLE structures en mode triangle ou tableau de GRADIENT_RECT structures en mode rectangle.

nMeshElements
Nombre d’éléments (triangles ou rectangles) dans pMesh.

dwMode
Spécifie le mode de remplissage dégradé. Pour obtenir la liste des valeurs possibles, consultez GradientFill le Kit de développement logiciel (SDK) Windows.

Valeur de retour

TRUE en cas de réussite ; sinon, FALSE.

Notes

Pour plus d’informations, consultez GradientFill le Kit de développement logiciel (SDK) Windows.

CDC::GrayString

Dessine le texte grisé à l’emplacement donné en écrivant le texte dans une bitmap de mémoire, en grisant la bitmap, puis en copiant la bitmap dans l’affichage.

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

Paramètres

pBrush
Identifie le pinceau à utiliser pour le grisage (grisage).

lpfnOutput
Spécifie l’adresse de l’instance de procédure de la fonction de rappel fournie par l’application qui dessinera la chaîne. Pour plus d’informations, consultez la description de la fonction de rappel Windows.OutputFunc Si ce paramètre est NULLle cas, le système utilise la fonction Windows TextOut pour dessiner la chaîne et lpData est supposé être un pointeur long vers la chaîne de caractères à générer.

lpData
Spécifie un pointeur éloigné vers les données à passer à la fonction de sortie. Si lpfnOutput c’est NULLle cas, lpData doit être un pointeur long vers la chaîne à générer.

nCount
Spécifie le nombre de caractères à générer. Si ce paramètre est 0, GrayString calcule la longueur de la chaîne (en supposant qu’il lpData s’agit d’un pointeur vers la chaîne). Si nCount la valeur est 1 et la fonction pointée par lpfnOutput renvoie 0, l’image est affichée, mais pas grisée.

x
Spécifie la coordonnée x logique de la position de départ du rectangle qui entoure la chaîne.

y
Spécifie la coordonnée y logique de la position de départ du rectangle qui entoure la chaîne.

nWidth
Spécifie la largeur (en unités logiques) du rectangle qui entoure la chaîne. Si nWidth la valeur est 0, GrayString calcule la largeur de la zone, en supposant qu’il s’agit lpData d’un pointeur vers la chaîne.

nHeight
Spécifie la hauteur (en unités logiques) du rectangle qui entoure la chaîne. Si nHeight la valeur est 0, GrayString calcule la hauteur de la zone, en supposant qu’il s’agit lpData d’un pointeur vers la chaîne.

Valeur de retour

Différent de zéro si la chaîne est dessinée, ou 0 si la fonction ou la TextOut fonction de sortie fournie par l’application a retourné 0, ou s’il n’y avait pas suffisamment de mémoire pour créer une bitmap de mémoire pour la grisage.

Notes

La fonction désactive le texte indépendamment du pinceau et de l’arrière-plan sélectionnés. La GrayString fonction membre utilise la police actuellement sélectionnée. Le MM_TEXT mode de mappage doit être sélectionné avant d’utiliser cette fonction.

Une application peut dessiner des chaînes grisées (grisées) sur les appareils qui prennent en charge une couleur gris unie sans appeler la GrayString fonction membre. La couleur système est la couleur COLOR_GRAYTEXT système unie-gris utilisée pour dessiner du texte désactivé. L’application peut appeler la GetSysColor fonction Windows pour récupérer la valeur de couleur de COLOR_GRAYTEXT. Si la couleur est autre que 0 (noir), l’application peut appeler la SetTextColor fonction membre pour définir la couleur du texte sur la valeur de couleur, puis dessiner la chaîne directement. Si la couleur récupérée est noire, l’application doit appeler GrayString le texte sombre (gris).

Si lpfnOutput c’est NULLle cas, GDI utilise la fonction Windows TextOut et lpData est supposé être un pointeur lointain vers le caractère à générer. Si les caractères à générer ne peuvent pas être gérés par la TextOut fonction membre (par exemple, la chaîne est stockée en tant que bitmap), l’application doit fournir sa propre fonction de sortie.

Toutes les fonctions de rappel doivent intercepter les exceptions Microsoft Foundation avant de revenir à Windows, car les exceptions ne peuvent pas être levées entre les limites de rappel. Pour plus d’informations sur les exceptions, consultez l’article Exceptions.

La fonction de rappel passée à GrayString utiliser la convention d’appel __stdcall et doit être exportée avec __declspec.

Lorsque l’infrastructure est en mode aperçu, un appel à la GrayString fonction membre est traduit en TextOut appel et la fonction de rappel n’est pas appelée.

CDC::HIMETRICtoDP

Utilisez cette fonction lorsque vous convertissez HIMETRIC des tailles d’OLE en pixels.

void HIMETRICtoDP(LPSIZE lpSize) const;

Paramètres

lpSize
Pointe vers une structure ou CSize un SIZE objet.

Notes

Si le mode de mappage de l’objet de contexte d’appareil est MM_LOENGLISH, MM_HIENGLISHMM_LOMETRIC ou , la MM_HIMETRICconversion est basée sur le nombre de pixels du pouce physique. Si le mode de mappage est l’un des autres modes non contraints (par exemple), MM_TEXTla conversion est basée sur le nombre de pixels dans le pouce logique.

CDC::HIMETRICtoLP

Appelez cette fonction pour convertir HIMETRIC des unités en unités logiques.

void HIMETRICtoLP(LPSIZE lpSize) const;

Paramètres

lpSize
Pointe vers une structure ou CSize un SIZE objet.

Notes

Utilisez cette fonction lorsque vous obtenez HIMETRIC des tailles d’OLE et souhaitez les convertir en mode de mappage naturel de votre application.

La conversion est effectuée en convertissant d’abord les HIMETRIC unités en pixels, puis en convertissant ces unités en unités logiques à l’aide des unités de mappage actuelles du contexte d’appareil. Notez que les étendues de la fenêtre et de la fenêtre d’affichage de l’appareil affectent le résultat.

CDC::IntersectClipRect

Crée une zone de découpage en formant l’intersection de la région actuelle et le rectangle spécifié par x1, y1, x2et y2.

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

int IntersectClipRect(LPCRECT lpRect);

Paramètres

x1
Spécifie la coordonnée x logique du coin supérieur gauche du rectangle.

y1
Spécifie la coordonnée y logique du coin supérieur gauche du rectangle.

x2
Spécifie la coordonnée x logique du coin inférieur droit du rectangle.

y2
Spécifie la coordonnée y logique du coin inférieur droit du rectangle.

lpRect
Spécifie le rectangle. Vous pouvez passer un CRect objet ou un pointeur vers une RECT structure pour ce paramètre.

Valeur de retour

Type de la nouvelle région de découpage. Il peut s’agir de l’une des valeurs suivantes :

  • COMPLEXREGION La nouvelle région de découpage comporte des bordures qui se chevauchent.

  • ERROR Le contexte de l’appareil n’est pas valide.

  • NULLREGION La nouvelle région de découpage est vide.

  • SIMPLEREGION La nouvelle région de découpage n’a pas de bordures qui se chevauchent.

Notes

GDI extrait toutes les sorties suivantes pour s’adapter à la nouvelle limite. La largeur et la hauteur ne doivent pas dépasser 32 767.

CDC::InvertRect

Inverse le contenu du rectangle donné.

void InvertRect(LPCRECT lpRect);

Paramètres

lpRect
Pointe vers un RECT qui contient les coordonnées logiques du rectangle à inverser. Vous pouvez également transmettre un CRect objet pour ce paramètre.

Notes

L’inversion est une opération NOT logique et retourne les bits de chaque pixel. Sur les écrans monochromes, la fonction rend les pixels blancs noirs et noirs blancs. Sur les affichages de couleurs, l’inversion dépend de la façon dont les couleurs sont générées pour l’affichage. L’appel InvertRect de deux fois avec le même rectangle restaure l’affichage sur ses couleurs précédentes.

Si le rectangle est vide, rien n’est dessiné.

Exemple

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

Inverse les couleurs de la région spécifiée par pRgn.

BOOL InvertRgn(CRgn* pRgn);

Paramètres

pRgn
Identifie la région à inverser. Les coordonnées de la région sont spécifiées en unités logiques.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Sur les écrans monochromes, la fonction rend les pixels blancs noirs et noirs blancs. Sur les affichages de couleurs, l’inversion dépend de la façon dont les couleurs sont générées pour l’affichage.

CDC::IsPrinting

Détermine si le contexte de l’appareil est utilisé pour l’impression.

BOOL IsPrinting() const;

Valeur de retour

Différent de zéro si l’objet CDC est un contrôleur de domaine d’imprimante ; sinon 0.

CDC::LineTo

Dessine une ligne de la position actuelle jusqu’à, mais pas compris, le point spécifié par x et y (ou point).

BOOL LineTo(
    int x,
    int y);

BOOL LineTo(POINT point);

Paramètres

x
Spécifie la coordonnée x logique du point de terminaison pour la ligne.

y
Spécifie la coordonnée y logique du point de terminaison pour la ligne.

point
Spécifie le point de terminaison de la ligne. Vous pouvez passer une POINT structure ou un CPoint objet pour ce paramètre.

Valeur de retour

Différent de zéro si la ligne est dessinée ; sinon 0.

Notes

La ligne est dessinée avec le stylet sélectionné. La position actuelle est définie xsur , y ou sur point.

Exemple

Consultez l’exemple pour CRect::CenterPoint.

CDC::LPtoDP

Convertit les unités logiques en unités d’appareil.

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

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

Paramètres

lpPoints
Pointe vers un tableau de points. Chaque point du tableau est une POINT structure ou un CPoint objet.

nCount
Nombre de points dans le tableau.

lpRect
Pointe vers une RECT structure ou un CRect objet. Ce paramètre est utilisé pour le cas courant de mappage d’un rectangle de logique à des unités d’appareil.

lpSize
Pointe vers une SIZE structure ou un CSize objet.

Notes

La fonction mappe les coordonnées de chaque point, ou dimensions d’une taille, du système de coordonnées logiques de GDI à un système de coordonnées d’appareil. La conversion dépend du mode de mappage actuel et des paramètres des origines et étendues de la fenêtre et de la fenêtre de l’appareil.

Les coordonnées x et y des points sont des entiers signés de 2 octets dans la plage -32 768 à 32 767. Dans les cas où le mode de mappage entraînerait des valeurs supérieures à ces limites, le système définit les valeurs sur -32 768 et 32 767, respectivement.

CDC::LPtoHIMETRIC

Appelez cette fonction pour convertir des unités logiques en HIMETRIC unités.

void LPtoHIMETRIC(LPSIZE lpSize) const;

Paramètres

lpSize
Pointe vers une SIZE structure ou un CSize objet.

Notes

Utilisez cette fonction lorsque vous donnez HIMETRIC des tailles à OLE, en convertissant à partir du mode de mappage naturel de votre application. Les étendues de la fenêtre et de la fenêtre d’affichage de l’appareil affectent le résultat.

La conversion est effectuée en convertissant d’abord les unités logiques en pixels à l’aide des unités de mappage actuelles du contexte d’appareil, puis en convertissant ces unités en HIMETRIC unités.

CDC::m_hAttribDC

Contexte de l’appareil d’attribut pour cet CDC objet.

HDC m_hAttribDC;

Notes

Par défaut, ce contexte d’appareil est égal à m_hDC. En général, CDC les appels GDI qui demandent des informations à partir du contexte de l’appareil sont dirigés vers m_hAttribDC. Pour plus d’informations sur l’utilisation de ces deux contextes d’appareil, consultez la CDC description de la classe.

CDC::m_hDC

Contexte de l’appareil de sortie pour cet CDC objet.

HDC m_hDC;

Notes

Par défaut, m_hDC est égal à m_hAttribDC, l’autre contexte d’appareil encapsulé par CDC. En général, CDC les appels GDI qui créent une sortie vont au contexte de l’appareil m_hDC . Vous pouvez initialiser m_hDC et m_hAttribDC pointer vers différents appareils. Pour plus d’informations sur l’utilisation de ces deux contextes d’appareil, consultez la CDC description de la classe.

CDC::MaskBlt

Combine les données de couleur pour les bitmaps source et de destination à l’aide de l’opération de masque et de raster donnée.

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

Paramètres

x
Spécifie la coordonnée x logique du coin supérieur gauche du rectangle de destination.

y
Spécifie la coordonnée y logique du coin supérieur gauche du rectangle de destination.

nWidth
Spécifie la largeur, en unités logiques, du rectangle de destination et de la bitmap source.

nHeight
Spécifie la hauteur, en unités logiques, du rectangle de destination et de la bitmap source.

pSrcDC
Identifie le contexte de l’appareil à partir duquel la bitmap doit être copiée. Il doit être égal à zéro si le dwRop paramètre spécifie une opération raster qui n’inclut pas de source.

xSrc
Spécifie la coordonnée x logique du coin supérieur gauche de la bitmap source.

ySrc
Spécifie la coordonnée y logique du coin supérieur gauche de la bitmap source.

maskBitmap
Identifie la bitmap de masque monochrome combinée à la bitmap de couleur dans le contexte de l’appareil source.

xMask
Spécifie le décalage horizontal des pixels pour l’image bitmap de masque spécifiée par le maskBitmap paramètre.

yMask
Spécifie le décalage de pixels verticaux pour l’image bitmap de masque spécifiée par le maskBitmap paramètre.

dwRop
Spécifie à la fois les codes d’opération de rastérisation au premier plan et en arrière-plan, que la fonction utilise pour contrôler la combinaison des données sources et de destination. Le code d’opération raster en arrière-plan est stocké dans l’octet élevé du mot élevé de cette valeur ; le code d’opération de rastérisation de premier plan est stocké dans le bas octet du mot élevé de cette valeur ; le mot faible de cette valeur est ignoré et doit être égal à zéro. La macro MAKEROP4 crée de telles combinaisons de codes d’opération de premier plan et de raster en arrière-plan. Consultez la section Remarques pour une discussion sur le premier plan et l’arrière-plan dans le contexte de cette fonction. Consultez la BitBlt fonction membre pour obtenir la liste des codes d’opération raster courants.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

La valeur 1 dans le masque spécifié indique maskBitmap que le code d’opération de rastériseur de premier plan spécifié par dwRop doit être appliqué à cet emplacement. La valeur 0 dans le masque indique que le code d’opération de raster en arrière-plan spécifié par dwRop doit être appliqué à cet emplacement. Si les opérations raster nécessitent une source, le rectangle de masque doit couvrir le rectangle source. Si ce n’est pas le cas, la fonction échoue. Si les opérations de rastérisage ne nécessitent pas de source, le rectangle de masque doit couvrir le rectangle de destination. Si ce n’est pas le cas, la fonction échoue.

Si une transformation de rotation ou de shérifie est en vigueur pour le contexte de l’appareil source lorsque cette fonction est appelée, une erreur se produit. Toutefois, d’autres types de transformations sont autorisés.

Si les formats de couleur de la source, du modèle et des bitmaps de destination diffèrent, cette fonction convertit le modèle ou le format source, ou les deux, en fonction du format de destination. Si la bitmap de masque n’est pas une bitmap monochrome, une erreur se produit. Lorsqu’un métafichier amélioré est enregistré, une erreur se produit (et la fonction retourne 0) si le contexte de l’appareil source identifie un contexte d’appareil de métafichier amélioré. Tous les appareils ne prennent pas en charge MaskBlt. Une application doit appeler GetDeviceCaps pour déterminer si un appareil prend en charge cette fonction. Si aucune bitmap de masque n’est fournie, cette fonction se comporte exactement comme BitBlt, à l’aide du code d’opération de raster de premier plan. Décalages de pixels dans la carte bitmap du masque au point (0,0) dans la bitmap du contexte d’appareil source. Cela est utile pour les cas où une bitmap de masque contient un ensemble de masques ; une application peut facilement appliquer l’une d’entre elles à une tâche de filtrage du masque en ajustant les décalages de pixels et les tailles de rectangle envoyées à MaskBlt.

CDC::ModifyWorldTransform

Modifie la transformation mondiale d’un contexte d’appareil à l’aide du mode spécifié.

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

Paramètres

rXform
Référence à une XFORM structure utilisée pour modifier la transformation mondiale pour le contexte d’appareil donné.

iMode
Spécifie la façon dont les données de transformation modifient la transformation mondiale actuelle. Pour obtenir la liste des valeurs que ce paramètre peut prendre, consultez ModifyWorldTransform.

Valeur de retour

Retourne une valeur différente de zéro en cas de réussite.

Retourne 0 en cas d’échec.

Pour obtenir des informations plus complètes sur les erreurs, appelez GetLastError.

Notes

Cette méthode encapsule la fonction ModifyWorldTransformGDI Windows .

CDC::MoveTo

Déplace la position actuelle vers le point spécifié par x et y (ou par point).

CPoint MoveTo(
    int x,
    int y);

CPoint MoveTo(POINT point);

Paramètres

x
Spécifie la coordonnée x logique de la nouvelle position.

y
Spécifie la coordonnée y logique de la nouvelle position.

point
Spécifie la nouvelle position. Vous pouvez passer une POINT structure ou un CPoint objet pour ce paramètre.

Valeur de retour

Coordonnées x et y de la position précédente en tant qu’objet CPoint .

Exemple

Consultez l’exemple pour CRect::CenterPoint.

CDC::OffsetClipRgn

Déplace la région de découpage du contexte de l’appareil par les décalages spécifiés.

int OffsetClipRgn(
    int x,
    int y);

int OffsetClipRgn(SIZE size);

Paramètres

x
Spécifie le nombre d’unités logiques à déplacer vers la gauche ou la droite.

y
Spécifie le nombre d’unités logiques à déplacer vers le haut ou vers le bas.

size
Spécifie la quantité à décaler.

Valeur de retour

Type de la nouvelle région. Il peut s’agir de l’une des valeurs suivantes :

  • COMPLEXREGION La zone de découpage comporte des bordures qui se chevauchent.

  • ERROR Le contexte de l’appareil n’est pas valide.

  • NULLREGION La zone de découpage est vide.

  • SIMPLEREGION La zone de découpage n’a pas de bordures qui se chevauchent.

Notes

La fonction déplace les unités de région x le long de l’axe x et y des unités le long de l’axe y.

CDC::OffsetViewportOrg

Modifie les coordonnées de l’origine de la fenêtre d’affichage par rapport aux coordonnées de l’origine de la fenêtre d’affichage actuelle.

virtual CPoint OffsetViewportOrg(
    int nWidth,
    int nHeight);

Paramètres

nWidth
Spécifie le nombre d’unités d’appareil à ajouter à la coordonnée x de l’origine actuelle.

nHeight
Spécifie le nombre d’unités d’appareil à ajouter à la coordonnée y de l’origine actuelle.

Valeur de retour

Origine de la fenêtre d’affichage précédente (dans les coordonnées de l’appareil) en tant qu’objet CPoint .

CDC::OffsetWindowOrg

Modifie les coordonnées de l’origine de la fenêtre par rapport aux coordonnées de l’origine de la fenêtre active.

CPoint OffsetWindowOrg(
    int nWidth,
    int nHeight);

Paramètres

nWidth
Spécifie le nombre d’unités logiques à ajouter à la coordonnée x de l’origine actuelle.

nHeight
Spécifie le nombre d’unités logiques à ajouter à la coordonnée y de l’origine actuelle.

Valeur de retour

Origine de la fenêtre précédente (en coordonnées logiques) en tant qu’objet CPoint .

CDC::operator HDC

Utilisez cet opérateur pour récupérer le handle de contexte de l’appareil de l’objet CDC .

operator HDC() const;

Valeur de retour

Si elle réussit, le handle de l’objet de contexte d’appareil ; sinon, NULL.

Notes

Vous pouvez utiliser le handle pour appeler directement les API Windows.

CDC::PaintRgn

Remplit la région spécifiée pRgn à l’aide du pinceau actuel.

BOOL PaintRgn(CRgn* pRgn);

Paramètres

pRgn
Identifie la région à remplir. Les coordonnées de la région donnée sont spécifiées en unités logiques.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

CDC::PatBlt

Crée un modèle de bits sur l’appareil.

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

Paramètres

x
Spécifie la coordonnée x logique du coin supérieur gauche du rectangle qui doit recevoir le modèle.

y
Spécifie la coordonnée y logique du coin supérieur gauche du rectangle qui doit recevoir le modèle.

nWidth
Spécifie la largeur (en unités logiques) du rectangle qui doit recevoir le modèle.

nHeight
Spécifie la hauteur (en unités logiques) du rectangle qui doit recevoir le modèle.

dwRop
Spécifie le code d’opération raster. Les codes d’opération raster (ROPs) définissent la façon dont GDI combine les couleurs dans les opérations de sortie qui impliquent un pinceau actuel, une image bitmap source possible et une bitmap de destination. Ce paramètre peut avoir l'une des valeurs suivantes :

  • PATCOPY Copie le modèle vers la bitmap de destination.

  • PATINVERTCombine la bitmap de destination avec le modèle à l’aide de l’opérateur XOR booléen (^).

  • DSTINVERT Inverse la bitmap de destination.

  • BLACKNESS Active toutes les sorties noires.

  • WHITENESS Active toutes les sorties blanches.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Le modèle est une combinaison du pinceau sélectionné et du modèle déjà présent sur l’appareil. Le code d’opération raster spécifié par dwRop définit la façon dont les modèles doivent être combinés. Les opérations de raster répertoriées pour cette fonction sont un sous-ensemble limité des 256 codes d’opération ternaires complets ; en particulier, un code d’opération raster qui fait référence à une source ne peut pas être utilisé.

Tous les contextes d’appareil ne prennent pas en charge la PatBlt fonction. Pour déterminer si un contexte d’appareil prend en charge PatBlt, appelez la GetDeviceCaps fonction membre avec l’index RASTERCAPS et vérifiez la valeur de retour de l’indicateur RC_BITBLT .

CDC::Pie

Dessine un coin en forme de secteurs en dessinant un arc elliptique dont le centre et deux points de terminaison sont joints par des lignes.

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

Paramètres

x1
Spécifie la coordonnée x du coin supérieur gauche du rectangle englobant (en unités logiques).

y1
Spécifie la coordonnée y du coin supérieur gauche du rectangle englobant (en unités logiques).

x2
Spécifie la coordonnée x du coin inférieur droit du rectangle englobant (en unités logiques).

y2
Spécifie la coordonnée y du coin inférieur droit du rectangle englobant (en unités logiques).

x3
Spécifie la coordonnée x du point de départ de l’arc (en unités logiques). Ce point n’a pas à mentir exactement sur l’arc.

y3
Spécifie la coordonnée y du point de départ de l’arc (en unités logiques). Ce point n’a pas à mentir exactement sur l’arc.

x4
Spécifie la coordonnée x du point de terminaison de l’arc (en unités logiques). Ce point n’a pas à mentir exactement sur l’arc.

y4
Spécifie la coordonnée y du point de terminaison de l’arc (en unités logiques). Ce point n’a pas à mentir exactement sur l’arc.

lpRect
Spécifie le rectangle englobant. Vous pouvez passer un CRect objet ou un pointeur vers une RECT structure pour ce paramètre.

ptStart
Spécifie le point de départ de l’arc. Ce point n’a pas à mentir exactement sur l’arc. Vous pouvez passer une POINT structure ou un CPoint objet pour ce paramètre.

ptEnd
Spécifie le point de terminaison de l’arc. Ce point n’a pas à mentir exactement sur l’arc. Vous pouvez passer une POINT structure ou un CPoint objet pour ce paramètre.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Le centre de l’arc est le centre du rectangle englobant spécifié par x1, y1, x2et y2 (ou par lpRect). Les points de début et de fin de l’arc sont spécifiés par x3, y3et x4y4 (ou par ptStart et ptEnd).

L’arc est dessiné avec le stylet sélectionné, se déplaçant dans un sens inverse. Deux lignes supplémentaires sont dessinées de chaque point de terminaison au centre de l’arc. La zone en forme de secteurs est remplie du pinceau actuel. Si x3 elle est égale x4 et y3 égaley4, le résultat est un ellipse avec une seule ligne du centre de l’ellipse au point (x3, y3) ou (, y4).x4

La figure dessinée par cette fonction s’étend jusqu’à mais n’inclut pas les coordonnées droite et inférieure. Cela signifie que la hauteur de la figure est y2 - y1 et que la largeur de la figure est x2 - x1. La largeur et la hauteur du rectangle englobant doivent être supérieures à 2 unités et inférieures à 32 767 unités.

Exemple

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

Lit le contenu du métafichier spécifié sur le contexte de l’appareil.

BOOL PlayMetaFile(HMETAFILE hMF);

BOOL PlayMetaFile(
    HENHMETAFILE hEnhMetaFile,
    LPCRECT lpBounds);

Paramètres

hMF
Identifie le métafichier à lire.

hEnhMetaFile
Identifie le métafichier amélioré.

lpBounds
Pointe vers une RECT structure ou un CRect objet qui contient les coordonnées du rectangle englobant utilisé pour afficher l’image. Les coordonnées sont spécifiées en unités logiques.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Le métafichier peut être lu n’importe quel nombre de fois.

La deuxième version d’affichage de PlayMetaFile l’image stockée dans le métafichier de format amélioré donné. Lorsqu’une application appelle la deuxième version de PlayMetaFile, Windows utilise le cadre d’image dans l’en-tête de métafichier amélioré pour mapper l’image sur le rectangle vers lequel pointe le paramètre lpBounds . (Cette image peut être shérifie ou pivotée en définissant la transformation mondiale dans l’appareil de sortie avant d’appeler PlayMetaFile.) Les points le long des bords du rectangle sont inclus dans l’image. Une image de métafichier améliorée peut être découpée en définissant la région de découpage dans l’appareil de sortie avant de lire le métafichier amélioré.

Si un métafichier amélioré contient une palette facultative, une application peut obtenir des couleurs cohérentes en configurant une palette de couleurs sur l’appareil de sortie avant d’appeler la deuxième version de PlayMetaFile. Pour récupérer la palette facultative, utilisez la GetEnhMetaFilePaletteEntries fonction Windows. Un métafichier amélioré peut être incorporé dans un métafichier amélioré nouvellement créé en appelant la deuxième version et PlayMetaFile en jouant le métafichier amélioré source dans le contexte de l’appareil pour le nouveau métafichier amélioré.

Les états du contexte de l’appareil de sortie sont conservés par cette fonction. Tout objet créé, mais non supprimé dans le métafichier amélioré, est supprimé par cette fonction. Pour arrêter cette fonction, une application peut appeler la CancelDC fonction Windows à partir d’un autre thread pour arrêter l’opération. Dans ce cas, la fonction retourne zéro.

CDC::PlgBlt

Effectue un transfert de bloc de bits des bits de données de couleur du rectangle spécifié dans le contexte de l’appareil source vers le parallélisme spécifié dans le contexte de l’appareil donné.

BOOL PlgBlt(
    LPPOINT lpPoint,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nWidth,
    int nHeight,
    CBitmap& maskBitmap,
    int xMask,
    int yMask);

Paramètres

lpPoint
Pointe vers un tableau de trois points dans l’espace logique qui identifie trois angles du parallélisme de destination. L’angle supérieur gauche du rectangle source est mappé au premier point de ce tableau, au coin supérieur droit au deuxième point de ce tableau et au coin inférieur gauche au troisième point. Le coin inférieur droit du rectangle source est mappé au quatrième point implicite dans le parallélisme.

pSrcDC
Identifie le contexte de l’appareil source.

xSrc
Spécifie la coordonnée x, en unités logiques, du coin supérieur gauche du rectangle source.

ySrc
Spécifie la coordonnée y, en unités logiques, du coin supérieur gauche du rectangle source.

nWidth
Spécifie la largeur, en unités logiques, du rectangle source.

nHeight
Spécifie la hauteur, en unités logiques, du rectangle source.

maskBitmap
Identifie une bitmap monochrome facultative utilisée pour masquer les couleurs du rectangle source.

xMask
Spécifie la coordonnée x du coin supérieur gauche de la bitmap monochrome.

yMask
Spécifie la coordonnée y du coin supérieur gauche de la bitmap monochrome.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Si le handle de masque de bits donné identifie une bitmap monochrome valide, la fonction utilise cette bitmap pour masquer les bits de données de couleur du rectangle source.

Le quatrième vertex de l’parallélisme (D) est défini en traitant les trois premiers points (A, B et C) comme vecteurs et calculant D = B + C - A.

Si le masque de bits existe, une valeur de 1 dans le masque indique que la couleur de pixel source doit être copiée dans la destination. La valeur 0 dans le masque indique que la couleur du pixel de destination n’est pas à modifier.

Si le rectangle de masque est plus petit que les rectangles source et de destination, la fonction réplique le modèle de masque.

Les transformations de mise à l’échelle, de traduction et de réflexion sont autorisées dans le contexte de l’appareil source ; toutefois, les transformations de rotation et de shérifie ne sont pas. Si la bitmap de masque n’est pas une bitmap monochrome, une erreur se produit. Le mode d’étirement pour le contexte de l’appareil de destination est utilisé pour déterminer comment étirer ou compresser les pixels, si nécessaire. Lorsqu’un métafichier amélioré est enregistré, une erreur se produit si le contexte de l’appareil source identifie un contexte d’appareil de métafichier amélioré.

Les coordonnées de destination sont transformées en fonction du contexte du périphérique de destination ; les coordonnées sources sont transformées en fonction du contexte du périphérique source. Si la transformation source a une rotation ou un shérif, une erreur est retournée. Si les rectangles de destination et source n’ont pas le même format de couleur, PlgBlt convertit le rectangle source en fonction du rectangle de destination. Tous les appareils ne prennent pas en charge PlgBlt. Pour plus d’informations, consultez la description de la RC_BITBLT fonctionnalité raster dans la CDC::GetDeviceCaps fonction membre.

Si les contextes de l’appareil source et de destination représentent des appareils incompatibles, PlgBlt retourne une erreur.

CDC::PolyBezier

Dessine une ou plusieurs splines Bzier.

BOOL PolyBezier(
    const POINT* lpPoints,
    int nCount);

Paramètres

lpPoints
Pointe vers un tableau de structures de POINT données qui contiennent les points de terminaison et les points de contrôle du ou des spline(s).

nCount
Spécifie le nombre de points dans le lpPoints tableau. Cette valeur doit être une fois supérieure à trois fois le nombre de splines à dessiner, car chaque spline Bzier nécessite deux points de contrôle et un point de terminaison, et la spline initiale nécessite un autre point de départ.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Cette fonction dessine des splines Bzier cubes à l’aide des points de terminaison et des points de contrôle spécifiés par le lpPoints paramètre. Le premier spline est dessiné du premier point au quatrième point en utilisant les deuxième et troisième points comme points de contrôle. Chaque spline suivante dans la séquence a besoin exactement de trois points supplémentaires : le point de terminaison du spline précédent est utilisé comme point de départ, les deux points suivants de la séquence sont des points de contrôle, et le troisième est le point de terminaison.

La position actuelle n’est pas utilisée ou mise à jour par la PolyBezier fonction. La figure n’est pas remplie. Cette fonction dessine des lignes à l’aide du stylet actuel.

CDC::PolyBezierTo

Dessine une ou plusieurs splines Bzier.

BOOL PolyBezierTo(
    const POINT* lpPoints,
    int nCount);

Paramètres

lpPoints
Pointe vers un tableau de structures de données qui contient les points de POINT terminaison et les points de contrôle.

nCount
Spécifie le nombre de points dans le lpPoints tableau. Cette valeur doit être trois fois le nombre de splines à dessiner, car chaque spline Bzier nécessite deux points de contrôle et un point de terminaison.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Cette fonction dessine des splines Bzier cubes à l’aide des points de contrôle spécifiés par le lpPoints paramètre. Le premier spline est dessiné de la position actuelle au troisième point en utilisant les deux premiers points comme points de contrôle. Pour chaque spline suivante, la fonction a besoin exactement de trois points supplémentaires et utilise le point de terminaison de la spline précédente comme point de départ pour la suivante. PolyBezierTo déplace la position actuelle jusqu’au point de terminaison du dernier spline Bzier. La figure n’est pas remplie. Cette fonction dessine des lignes à l’aide du stylet actuel.

Exemple

Consultez l’exemple pour CDC::BeginPath.

CDC::PolyDraw

Dessine un ensemble de segments de ligne et de splines Bzier.

BOOL PolyDraw(
    const POINT* lpPoints,
    const BYTE* lpTypes,
    int nCount);

Paramètres

lpPoints
Pointe vers un tableau de structures de données qui contient les points de terminaison pour chaque segment de POINT ligne et les points de terminaison et les points de contrôle pour chaque spline Bzier.

lpTypes
Pointe vers un tableau qui spécifie la façon dont chaque point du lpPoints tableau est utilisé. Il peut s'agir de l'une des valeurs suivantes :

  • PT_MOVETO Spécifie que ce point démarre une figure disjointe. Ce point devient la nouvelle position actuelle.

  • PT_LINETO Spécifie qu’une ligne doit être dessinée de la position actuelle à ce point, qui devient ensuite la nouvelle position actuelle.

  • PT_BEZIERTO Spécifie que ce point est un point de contrôle ou un point de terminaison pour une spline Bzier.

PT_BEZIERTO les types se produisent toujours dans les ensembles de trois. La position actuelle définit le point de départ du spline Bzier. Les deux PT_BEZIERTO premiers points sont les points de contrôle, et le troisième PT_BEZIERTO point est le point de fin. Le point de fin devient la nouvelle position actuelle. S’il n’y a pas trois points consécutifs PT_BEZIERTO , une erreur se produit.

Un PT_LINETO ou PT_BEZIERTO type peut être combiné à la constante suivante à l’aide de l’opérateur au niveau du bit OR pour indiquer que le point correspondant est le dernier point d’une figure et que la figure est fermée :

  • PT_CLOSEFIGURESpécifie que la figure est automatiquement fermée une fois que le ou PT_BEZIERTO le PT_LINETO type de ce point est terminé. Une ligne est dessinée de ce point vers le point le plus récent ou MoveTo le plus récentPT_MOVETO.

    Cet indicateur est combiné avec le PT_LINETO type d’une ligne, ou avec le PT_BEZIERTO type de point de terminaison d’une spline Bzier, à l’aide de l’opérateur OR au niveau du bit. La position actuelle est définie sur le point de fin de la ligne fermante.

nCount
Spécifie le nombre total de points dans le lpPoints tableau, identique au nombre d’octets du lpTypes tableau.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Cette fonction peut être utilisée pour dessiner des figures disjointes à la place des appels consécutifs aux CDC::MoveTofonctions membres CDC::LineToet CDC::PolyBezierTo aux fonctions membres. Les lignes et les splines sont dessinées à l’aide du stylet actuel, et les figures ne sont pas remplies. S’il existe un chemin d’accès actif démarré en appelant la CDC::BeginPath fonction membre, PolyDraw ajoute le chemin d’accès. Les points contenus dans le lpPoints tableau et lpTypes indiquent si chaque point fait partie d’une , d’une CDC::MoveToCDC::LineToou d’une CDC::BezierTo opération. Il est également possible de fermer des chiffres. Cette fonction met à jour la position actuelle.

Exemple

Consultez l’exemple pour CDC::BeginPath.

CDC::Polygon

Dessine un polygone composé de deux points ou plus (sommets) connectés par des lignes, à l’aide du stylet actuel.

BOOL Polygon(
    LPPOINT lpPoints,
    int nCount);

Paramètres

lpPoints
Pointe vers un tableau de points qui spécifie les sommets du polygone. Chaque point du tableau est une POINT structure ou un CPoint objet.

nCount
Spécifie le nombre de sommets dans le tableau.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Le système ferme automatiquement le polygone, si nécessaire, en dessinant une ligne du dernier sommet au premier.

Le mode de remplissage des polygones actuel peut être récupéré ou défini à l’aide des fonctions membres et SetPolyFillMode des GetPolyFillMode fonctions membres.

Exemple

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

Dessine un ensemble de segments de ligne qui connectent les points spécifiés par lpPoints.

BOOL Polyline(
    LPPOINT lpPoints,
    int nCount);

Paramètres

lpPoints
Pointe vers un tableau de structures ou CPoint d’objets POINT à connecter.

nCount`
Spécifie le nombre de points dans le tableau. Cette valeur doit être au moins 2.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Les lignes sont dessinées du premier point à des points suivants à l’aide du stylet actuel. Contrairement à la LineTo fonction membre, la Polyline fonction n’utilise pas ou ne met pas à jour la position actuelle.

Pour plus d’informations, consultez PolyLine le Kit de développement logiciel (SDK) Windows.

CDC::PolylineTo

Dessine une ou plusieurs lignes droites.

BOOL PolylineTo(
    const POINT* lpPoints,
    int nCount);

Paramètres

lpPoints
Pointe vers un tableau de structures de POINT données qui contient les sommets de la ligne.

nCount
Spécifie le nombre de points dans le tableau.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Une ligne est dessinée de la position actuelle au premier point spécifié par le lpPoints paramètre à l’aide du stylet actuel. Pour chaque ligne supplémentaire, la fonction tire du point de fin de la ligne précédente au point suivant spécifié par lpPoints. PolylineTo déplace la position actuelle vers le point de fin de la dernière ligne. Si les segments de trait dessinés par cette fonction forment une figure fermée, la figure n’est pas remplie.

CDC::PolyPolygon

Crée deux polygones ou plus remplis à l’aide du mode de remplissage de polygones actuel.

BOOL PolyPolygon(
    LPPOINT lpPoints,
    LPINT lpPolyCounts,
    int nCount);

Paramètres

lpPoints
Pointe vers un tableau de structures ou CPoint d’objets POINT qui définissent les sommets des polygones.

lpPolyCounts
Pointe vers un tableau d’entiers, chacun d’entre eux spécifiant le nombre de points dans l’un des polygones du lpPoints tableau.

nCount
Nombre d’entrées dans le lpPolyCounts tableau. Ce nombre spécifie le nombre de polygones à dessiner. Cette valeur doit être au moins 2.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Les polygones peuvent être disjoints ou se chevauchent.

Chaque polygone spécifié dans un appel à la PolyPolygon fonction doit être fermé. Contrairement aux polygones créés par la Polygon fonction membre, les polygones créés par PolyPolygon ne sont pas fermés automatiquement.

La fonction crée deux polygones ou plus. Pour créer un polygone unique, une application doit utiliser la Polygon fonction membre.

Le mode de remplissage des polygones actuel peut être récupéré ou défini à l’aide des fonctions membres et SetPolyFillMode des GetPolyFillMode fonctions membres.

CDC::PolyPolyline

Dessine plusieurs séries de segments de ligne connectés.

BOOL PolyPolyline(
    const POINT* lpPoints,
    const DWORD* lpPolyPoints,
    int nCount);

Paramètres

lpPoints
Pointe vers un tableau de structures qui contient les sommets des polylignes. Les polylignes sont spécifiées consécutivement.

lpPolyPoints
Pointe vers un tableau de variables spécifiant le nombre de points dans le lpPoints tableau pour le polygone correspondant. Chaque entrée doit être supérieure ou égale à 2.

nCount
Spécifie le nombre total de nombres dans le lpPolyPoints tableau.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Les segments de trait sont dessinés à l’aide du stylet actuel. Les figures formées par les segments ne sont pas remplies. La position actuelle n’est pas utilisée ou mise à jour par cette fonction.

CDC::PtVisible

Détermine si le point donné se trouve dans la région de découpage du contexte de l’appareil.

virtual BOOL PtVisible(
    int x,
    int y) const;

BOOL PtVisible(POINT point) const;

Paramètres

x
Spécifie la coordonnée x logique du point.

y
Spécifie la coordonnée y logique du point.

point
Spécifie le point à vérifier dans les coordonnées logiques. Vous pouvez passer une POINT structure ou un CPoint objet pour ce paramètre.

Valeur de retour

Différent de zéro si le point spécifié se trouve dans la région de découpage ; sinon 0.

CDC::QueryAbort

Appelle la fonction d’abandon installée par la SetAbortProc fonction membre pour une application d’impression et interroge si l’impression doit être arrêtée.

BOOL QueryAbort() const;

Valeur de retour

La valeur de retour est différente de zéro si l’impression doit continuer ou s’il n’existe aucune procédure d’abandon. Il s’agit de 0 si le travail d’impression doit être arrêté. La valeur de retour est fournie par la fonction d’abandon.

CDC::RealizePalette

Mappe les entrées de la palette logique actuelle à la palette système.

UINT RealizePalette();

Valeur de retour

Indique le nombre d’entrées de la palette logique mappées à différentes entrées de la palette système. Cela représente le nombre d’entrées que cette fonction a remappées pour prendre en charge les modifications dans la palette système depuis la dernière réalisation de la palette logique.

Notes

Une palette de couleurs logique agit comme une mémoire tampon entre les applications gourmandes en couleurs et le système, ce qui permet à une application d’utiliser autant de couleurs que nécessaire sans interférer avec ses propres couleurs affichées ou avec les couleurs affichées par d’autres fenêtres.

Lorsqu’une fenêtre a le focus et les appels RealizePaletted’entrée, Windows garantit que la fenêtre affiche toutes les couleurs demandées, jusqu’au nombre maximal disponible simultanément sur l’écran. Windows affiche également les couleurs introuvables dans la palette de la fenêtre en les correspondant aux couleurs disponibles.

De plus, Windows correspond aux couleurs demandées par les fenêtres inactives qui appellent la fonction aussi étroitement que possible aux couleurs disponibles. Cela réduit considérablement les modifications indésirables dans les couleurs affichées dans les fenêtres inactives.

CDC::Rectangle

Dessine un rectangle à l’aide du stylet actuel.

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

BOOL Rectangle(LPCRECT lpRect);

Paramètres

x1
Spécifie la coordonnée x du coin supérieur gauche du rectangle (en unités logiques).

y1
Spécifie la coordonnée y du coin supérieur gauche du rectangle (en unités logiques).

x2
Spécifie la coordonnée x du coin inférieur droit du rectangle (en unités logiques).

y2
Spécifie la coordonnée y du coin inférieur droit du rectangle (en unités logiques).

lpRect
Spécifie le rectangle en unités logiques. Vous pouvez passer un CRect objet ou un pointeur vers une RECT structure pour ce paramètre.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

L’intérieur du rectangle est rempli à l’aide du pinceau actuel.

Le rectangle s’étend jusqu’à, mais n’inclut pas les coordonnées droite et inférieure. Cela signifie que la hauteur du rectangle est y2 - y1 et que la largeur du rectangle est .x2 - x1 La largeur et la hauteur d’un rectangle doivent être supérieures à 2 unités et inférieures à 32 767 unités.

Exemple

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

Détermine si une partie du rectangle donné se trouve dans la zone de découpage du contexte d’affichage.

virtual BOOL RectVisible(LPCRECT lpRect) const;

Paramètres

lpRect
Pointe vers une RECT structure ou un CRect objet qui contient les coordonnées logiques du rectangle spécifié.

Valeur de retour

Différent de zéro si une partie du rectangle donné se trouve dans la zone de découpage ; sinon 0.

CDC::ReleaseAttribDC

Appelez cette fonction membre pour définir m_hAttribDC la valeur NULL.

virtual void ReleaseAttribDC();

Notes

Cela n’entraîne pas de Detach survenue. Seul le contexte d’appareil de sortie est attaché à l’objet CDC , et seul il peut être détaché.

CDC::ReleaseOutputDC

Appelez cette fonction membre pour définir le m_hDC membre sur NULL.

virtual void ReleaseOutputDC();

Notes

Cette fonction membre ne peut pas être appelée lorsque le contexte de l’appareil de sortie est attaché à l’objet CDC . Utilisez la Detach fonction membre pour détacher le contexte de l’appareil de sortie.

CDC::ResetDC

Appelez cette fonction membre pour mettre à jour le contexte de l’appareil encapsulé par l’objet CDC .

BOOL ResetDC(const DEVMODE* lpDevMode);

Paramètres

lpDevMode
Pointeur vers une structure Windows DEVMODE .

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Le contexte de l’appareil est mis à jour à partir des informations spécifiées dans la structure Windows DEVMODE . Cette fonction membre réinitialise uniquement le contexte de l’appareil d’attribut.

Une application utilise généralement la ResetDC fonction membre lorsqu’une fenêtre traite un WM_DEVMODECHANGE message. Vous pouvez également utiliser cette fonction membre pour modifier l’orientation du papier ou les bacs de papier lors de l’impression d’un document.

Vous ne pouvez pas utiliser cette fonction membre pour modifier le nom du pilote, le nom de l’appareil ou le port de sortie. Lorsque l’utilisateur modifie la connexion de port ou le nom de l’appareil, vous devez supprimer le contexte d’appareil d’origine et créer un contexte d’appareil avec les nouvelles informations.

Avant d’appeler cette fonction membre, vous devez vous assurer que tous les objets (autres que les objets stock) sélectionnés dans le contexte de l’appareil ont été sélectionnés.

CDC::RestoreDC

Restaure le contexte de l’appareil à l’état précédent identifié par nSavedDC.

virtual BOOL RestoreDC(int nSavedDC);

Paramètres

nSavedDC
Spécifie le contexte de l’appareil à restaurer. Il peut s’agir d’une valeur retournée par un appel de fonction précédent SaveDC . Si nSavedDC la valeur est -1, le contexte d’appareil enregistré le plus récemment est restauré.

Valeur de retour

Différent de zéro si le contexte spécifié a été restauré ; sinon 0.

Notes

RestoreDC restaure le contexte de l’appareil en supprimant les informations d’état d’une pile créée par des appels antérieurs à la SaveDC fonction membre.

La pile peut contenir les informations d’état pour plusieurs contextes d’appareil. Si le contexte spécifié par nSavedDC ne se trouve pas en haut de la pile, RestoreDC supprime toutes les informations d’état entre le contexte de l’appareil spécifié par nSavedDC et le haut de la pile. Les informations supprimées sont perdues.

CDC::RoundRect

Dessine un rectangle avec des angles arrondis à l’aide du stylet actuel.

BOOL RoundRect(
    int x1,
    int y1,
    int x2,
    int y2,
    int x3,
    int y3);

BOOL RoundRect(
    LPCRECT lpRect,
    POINT point);

Paramètres

x1
Spécifie la coordonnée x du coin supérieur gauche du rectangle (en unités logiques).

y1
Spécifie la coordonnée y du coin supérieur gauche du rectangle (en unités logiques).

x2
Spécifie la coordonnée x du coin inférieur droit du rectangle (en unités logiques).

y2
Spécifie la coordonnée y du coin inférieur droit du rectangle (en unités logiques).

x3
Spécifie la largeur de l’ellipse utilisée pour dessiner les angles arrondis (en unités logiques).

y3
Spécifie la hauteur de l’ellipse utilisée pour dessiner les angles arrondis (en unités logiques).

lpRect
Spécifie le rectangle englobant en unités logiques. Vous pouvez passer un CRect objet ou un pointeur vers une RECT structure pour ce paramètre.

point
Coordonnée x de point spécifie la largeur de l’ellipse pour dessiner les angles arrondis (en unités logiques). Coordonnée y de point spécifie la hauteur de l’ellipse pour dessiner les angles arrondis (en unités logiques). Vous pouvez passer une POINT structure ou un CPoint objet pour ce paramètre.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

L’intérieur du rectangle est rempli à l’aide du pinceau actuel.

La figure que cette fonction dessine s’étend jusqu’à mais n’inclut pas les coordonnées droite et inférieure. Cela signifie que la hauteur de la figure est y2 - y1 et que la largeur de la figure est x2 - x1. La hauteur et la largeur du rectangle englobant doivent être supérieures à 2 unités et inférieures à 32 767 unités.

Exemple

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

Enregistre l’état actuel du contexte de l’appareil en copiant des informations d’état (telles que la région de découpage, les objets sélectionnés et le mode de mappage) dans une pile de contexte conservée par Windows.

virtual int SaveDC();

Valeur de retour

Entier identifiant le contexte de l’appareil enregistré. Il s’agit de 0 si une erreur se produit. Cette valeur de retour peut être utilisée pour restaurer le contexte de l’appareil en appelant RestoreDC.

Notes

Le contexte de l’appareil enregistré peut être restauré ultérieurement à l’aide RestoreDCde .

SaveDC peut être utilisé n’importe quel nombre de fois pour enregistrer n’importe quel nombre d’états de contexte d’appareil.

CDC::ScaleViewportExt

Modifie les étendues de la fenêtre d’affichage par rapport aux valeurs actuelles.

virtual CSize ScaleViewportExt(
    int xNum,
    int xDenom,
    int yNum,
    int yDenom);

Paramètres

xNum
Spécifie la quantité par laquelle multiplier l’extension x actuelle.

xDenom
Spécifie la quantité par laquelle diviser le résultat de la multiplication de l’extension x actuelle par la valeur du xNum paramètre.

yNum
Spécifie la quantité par laquelle multiplier l’étendue y actuelle.

yDenom
Spécifie la quantité par laquelle diviser le résultat de la multiplication de l’étendue y actuelle par la valeur du yNum paramètre.

Valeur de retour

Étendues de la fenêtre d’affichage précédentes (en unités d’appareil) en tant qu’objet CSize .

Notes

Les formules sont écrites comme suit :

xNewVE = ( xOldVE * xNum ) / xDenom

yNewVE = ( yOldVE * yNum ) / yDenom

Les nouvelles étendues de fenêtre d’affichage sont calculées en multipliant les étendues actuelles par le numérateur donné, puis en divisant par le dénominateur donné.

CDC::ScaleWindowExt

Modifie les étendues de fenêtre par rapport aux valeurs actuelles.

virtual CSize ScaleWindowExt(
    int xNum,
    int xDenom,
    int yNum,
    int yDenom);

Paramètres

xNum
Spécifie la quantité par laquelle multiplier l’extension x actuelle.

xDenom
Spécifie la quantité par laquelle diviser le résultat de la multiplication de l’extension x actuelle par la valeur du xNum paramètre.

yNum
Spécifie la quantité par laquelle multiplier l’étendue y actuelle.

yDenom
Spécifie la quantité par laquelle diviser le résultat de la multiplication de l’étendue y actuelle par la valeur du yNum paramètre.

Valeur de retour

Étendues de fenêtre précédentes (en unités logiques) en tant qu’objet CSize .

Notes

Les formules sont écrites comme suit :

xNewWE = ( xOldWE * xNum ) / xDenom

yNewWE = ( yOldWE * yNum ) / yDenom

Les nouvelles étendues de fenêtre sont calculées en multipliant les étendues actuelles par le numérateur donné, puis en divisant par le dénominateur donné.

CDC::ScrollDC

Fait défiler un rectangle de bits horizontalement et verticalement.

BOOL ScrollDC(
    int dx,
    int dy,
    LPCRECT lpRectScroll,
    LPCRECT lpRectClip,
    CRgn* pRgnUpdate,
    LPRECT lpRectUpdate);

Paramètres

dx
Spécifie le nombre d’unités de défilement horizontales.

dy
Spécifie le nombre d’unités de défilement verticales.

lpRectScroll
Pointe vers la structure ou CRect l’objet RECT qui contient les coordonnées du rectangle de défilement.

lpRectClip
Pointe vers la structure ou CRect l’objet RECT qui contient les coordonnées du rectangle de découpage. Lorsque ce rectangle est plus petit que celui d’origine vers lequel pointe lpRectScroll, le défilement se produit uniquement dans le plus petit rectangle.

pRgnUpdate
Identifie la région découverte par le processus de défilement. La ScrollDC fonction définit cette région ; elle n’est pas nécessairement un rectangle.

lpRectUpdate
Pointe vers la structure ou CRect l’objet RECT qui reçoit les coordonnées du rectangle qui limite la région de mise à jour de défilement. Il s’agit de la plus grande zone rectangulaire qui nécessite une repeignement. Les valeurs de la structure ou de l’objet lorsque la fonction retourne se trouvent dans les coordonnées du client, quel que soit le mode de mappage du contexte d’appareil donné.

Valeur de retour

Différent de zéro si le défilement est exécuté ; sinon 0.

Notes

Si lpRectUpdate c’est NULLle cas, Windows ne calcule pas le rectangle de mise à jour. Si les deux pRgnUpdate et lpRectUpdate sont NULL, Windows ne calcule pas la région de mise à jour. Si pRgnUpdate ce n’est pas NULLle cas, Windows suppose qu’il contient un pointeur valide vers la région découverte par le processus de défilement (défini par la ScrollDC fonction membre). La région de mise à CWnd::InvalidateRgn jour retournée lpRectUpdate peut être transmise si nécessaire.

Une application doit utiliser la ScrollWindow fonction membre de classe CWnd lorsqu’il est nécessaire de faire défiler la zone cliente entière d’une fenêtre. Sinon, il doit utiliser ScrollDC.

CDC::SelectClipPath

Sélectionne le chemin actuel en tant que région de découpage pour le contexte de l’appareil, en combinant la nouvelle région avec n’importe quelle région de découpage existante à l’aide du mode spécifié.

BOOL SelectClipPath(int nMode);

Paramètres

nMode
Spécifie la façon d’utiliser le chemin d’accès. Les valeurs autorisées sont les suivantes :

  • RGN_AND La nouvelle région de découpage comprend l’intersection (zones qui se chevauchent) de la région de découpage actuelle et le chemin d’accès actuel.

  • RGN_COPY La nouvelle région de découpage est le chemin actuel.

  • RGN_DIFF La nouvelle région de découpage inclut les zones de la région de découpage actuelle, et celles du chemin actuel sont exclues.

  • RGN_OR La nouvelle région de découpage inclut l’union (zones combinées) de la région de découpage actuelle et le chemin d’accès actuel.

  • RGN_XOR La nouvelle région de découpage inclut l’union de la région de découpage actuelle et le chemin actuel, mais sans les zones qui se chevauchent.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Le contexte de l’appareil identifié doit contenir un chemin fermé.

CDC::SelectClipRgn

Sélectionne la région donnée comme région de découpage actuelle pour le contexte de l’appareil.

int SelectClipRgn(CRgn* pRgn);

int SelectClipRgn(
    CRgn* pRgn,
    int nMode);

Paramètres

pRgn
Identifie la région à sélectionner.

  • Pour la première version de cette fonction, si cette valeur est NULL, la zone cliente entière est sélectionnée et la sortie est toujours clippée dans la fenêtre.

  • Pour la deuxième version de cette fonction, ce handle ne peut être NULL que lorsque le RGN_COPY mode est spécifié.

nMode
Spécifie l’opération à effectuer. Il doit s’agir de l’une des valeurs suivantes :

  • RGN_AND La nouvelle région de découpage combine les zones qui se chevauchent de la région de découpage actuelle et la région identifiée par pRgn.

  • RGN_COPY La nouvelle région de découpage est une copie de la région identifiée par pRgn. Il s’agit d’une fonctionnalité identique à la première version de SelectClipRgn. Si la région identifiée par pRgn est NULL, la nouvelle région de découpage devient la région de découpage par défaut (une région Null).

  • RGN_DIFF La nouvelle région de découpage combine les zones de la région de découpage actuelle avec celles exclues de la région identifiée par pRgn.

  • RGN_OR La nouvelle région de découpage combine la région de découpage actuelle et la région identifiée par pRgn.

  • RGN_XOR La nouvelle région de découpage combine la région de découpage actuelle et la région identifiée par pRgn , mais exclut les zones qui se chevauchent.

Valeur de retour

Type de la région. Il peut s’agir de l’une des valeurs suivantes :

  • COMPLEXREGION La nouvelle région de découpage comporte des bordures qui se chevauchent.

  • ERROR Le contexte ou la région de l’appareil n’est pas valide.

  • NULLREGION La nouvelle région de découpage est vide.

  • SIMPLEREGION La nouvelle région de découpage n’a pas de bordures qui se chevauchent.

Notes

Seule une copie de la région sélectionnée est utilisée. La région elle-même peut être sélectionnée pour n’importe quel nombre d’autres contextes d’appareil, ou elle peut être supprimée.

La fonction suppose que les coordonnées de la région donnée sont spécifiées dans les unités d’appareil. Certains périphériques d’imprimante prennent en charge la sortie de texte à une résolution supérieure à la sortie graphique afin de conserver la précision nécessaire pour exprimer les métriques de texte. Ces appareils signalent des unités d’appareil à la résolution supérieure, autrement dit, en unités de texte. Ces appareils mettez ensuite à l’échelle les coordonnées des graphiques afin que plusieurs unités d’appareil signalées correspondent à seulement 1 unité graphique. Vous devez toujours appeler la fonction à l’aide d’unités SelectClipRgn de texte.

Les applications qui doivent prendre la mise à l’échelle des objets graphiques dans l’interface GDI peuvent utiliser l’échappement de l’imprimante GETSCALINGFACTOR pour déterminer le facteur de mise à l’échelle. Ce facteur de mise à l’échelle affecte le découpage. Si une région est utilisée pour découper des graphiques, GDI divise les coordonnées par le facteur de mise à l’échelle. Si la région est utilisée pour découper du texte, GDI n’effectue aucun ajustement de mise à l’échelle. Un facteur de mise à l’échelle de 1 entraîne la division des coordonnées par 2 ; un facteur de mise à l’échelle de 2 entraîne la division des coordonnées par 4 ; et ainsi de suite.

CDC::SelectObject

Sélectionne un objet dans le contexte de l’appareil.

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

Paramètres

pPen
Pointeur vers un CPen objet à sélectionner.

pBrush
Pointeur vers un CBrush objet à sélectionner.

pFont
Pointeur vers un CFont objet à sélectionner.

pBitmap
Pointeur vers un CBitmap objet à sélectionner.

pRgn
Pointeur vers un CRgn objet à sélectionner.

pObject
Pointeur vers un CGdiObject objet à sélectionner.

Valeur de retour

Pointeur vers l’objet en cours de remplacement. Il s’agit d’un pointeur vers un objet de l’une des classes dérivées CGdiObject, par CPenexemple, selon la version de la fonction utilisée. La valeur de retour est NULL en cas d’erreur. Cette fonction peut retourner un pointeur vers un objet temporaire. Cet objet temporaire n’est valide que pendant le traitement d’un message Windows. Pour plus d’informations, consultez CGdiObject::FromHandle.

La version de la fonction membre qui prend un paramètre de région effectue la même tâche que la SelectClipRgn fonction membre. Sa valeur de retour peut être l’une des suivantes :

  • COMPLEXREGION La nouvelle région de découpage comporte des bordures qui se chevauchent.

  • ERROR Le contexte ou la région de l’appareil n’est pas valide.

  • NULLREGION La nouvelle région de découpage est vide.

  • SIMPLEREGION La nouvelle région de découpage n’a pas de bordures qui se chevauchent.

Notes

La classe CDC fournit cinq versions spécialisées pour des types particuliers d’objets GDI, notamment des stylets, des pinceaux, des polices, des bitmaps et des régions. L’objet nouvellement sélectionné remplace l’objet précédent du même type. Par exemple, si pObject de la version générale des SelectObject points vers un CPen objet, la fonction remplace le stylet actuel par le stylet spécifié par pObject.

Une application peut sélectionner une bitmap dans des contextes d’appareil mémoire uniquement et dans un seul contexte d’appareil mémoire à la fois. Le format de la bitmap doit être monochrome ou compatible avec le contexte de l’appareil ; si ce n’est pas le cas, SelectObject retourne une erreur.

Pour Windows 3.1 et versions ultérieures, la SelectObject fonction retourne la même valeur qu’elle soit utilisée dans un métafichier ou non. Sous les versions précédentes de Windows, SelectObject retourne une valeur différente de zéro pour la réussite et 0 en cas d’échec lorsqu’il a été utilisé dans un métafichier.

CDC::SelectPalette

Sélectionne la palette logique spécifiée par pPalette l’objet de palette sélectionné du contexte de l’appareil.

CPalette* SelectPalette(
    CPalette* pPalette,
    BOOL bForceBackground);

Paramètres

pPalette
Identifie la palette logique à sélectionner. Cette palette doit déjà avoir été créée avec la CPalette fonction CreatePalettemembre.

bForceBackground
Spécifie si la palette logique est forcée d’être une palette d’arrière-plan. Si bForceBackground elle n’est pas différente de zéro, la palette sélectionnée est toujours une palette d’arrière-plan, que la fenêtre ait le focus d’entrée. Si bForceBackground la valeur est 0 et que le contexte de l’appareil est attaché à une fenêtre, la palette logique est une palette de premier plan lorsque la fenêtre a le focus d’entrée.

Valeur de retour

Pointeur vers un CPalette objet identifiant la palette logique remplacée par la palette spécifiée par pPalette. C’est NULL s’il y a une erreur.

Notes

La nouvelle palette devient l’objet palette utilisé par GDI pour contrôler les couleurs affichées dans le contexte de l’appareil et remplace la palette précédente.

Une application peut sélectionner une palette logique dans plusieurs contextes d’appareil. Toutefois, les modifications apportées à une palette logique affectent tous les contextes d’appareil pour lesquels il est sélectionné. Si une application sélectionne une palette dans plusieurs contextes d’appareil, les contextes d’appareil doivent tous appartenir au même appareil physique.

CDC::SelectStockObject

Sélectionne un CGdiObject objet qui correspond à l’un des stylos, pinceaux ou polices de stock prédéfinis.

virtual CGdiObject* SelectStockObject(int nIndex);

Paramètres

nIndex
Spécifie le type d’objet stock souhaité. Ce peut être l’une des valeurs suivantes :

  • BLACK_BRUSH Pinceau noir.

  • DKGRAY_BRUSH Pinceau gris foncé.

  • GRAY_BRUSH Pinceau gris.

  • HOLLOW_BRUSH Pinceau creux.

  • LTGRAY_BRUSH Pinceau gris clair.

  • NULL_BRUSH Pinceau Null.

  • WHITE_BRUSH Pinceau blanc.

  • BLACK_PEN Stylet noir.

  • NULL_PEN Stylet Null.

  • WHITE_PEN Stylet blanc.

  • ANSI_FIXED_FONT Police système fixe ANSI.

  • ANSI_VAR_FONT Police du système de variables ANSI.

  • DEVICE_DEFAULT_FONT Police dépendante de l’appareil.

  • OEM_FIXED_FONT Police fixe dépendante de l’OEM.

  • SYSTEM_FONT Police système. Par défaut, Windows utilise la police système pour dessiner des menus, des contrôles de boîte de dialogue et d’autres textes. Toutefois, il est préférable de ne pas s’appuyer sur SYSTEM_FONT la police utilisée par les dialogues et les fenêtres. Utilisez plutôt la SystemParametersInfo fonction avec le SPI_GETNONCLIENTMETRICS paramètre pour récupérer la police actuelle. SystemParametersInfo prend en compte le thème actuel et fournit des informations de police pour les légendes, les menus et les boîtes de dialogue de message.

  • SYSTEM_FIXED_FONT Police système à largeur fixe utilisée dans Windows avant la version 3.0. Cet objet est disponible pour la compatibilité avec les versions antérieures de Windows.

  • DEFAULT_PALETTE Palette de couleurs par défaut. Cette palette se compose de 20 couleurs statiques dans la palette système.

Valeur de retour

Pointeur vers l’objet CGdiObject qui a été remplacé si la fonction réussit. L’objet réel pointé est un CPen, CBrushou CFont un objet. Si l’appel échoue, la valeur de retour est NULL.

CDC::SetAbortProc

Installe la procédure d’abandon de la tâche d’impression.

int SetAbortProc(BOOL (CALLBACK* lpfn)(HDC, int));

Paramètres

lpfn
Pointeur vers la fonction d’abandon à installer comme procédure d’abandon. Pour plus d’informations sur la fonction de rappel, consultez La fonction de rappel pour CDC::SetAbortProc.

Valeur de retour

Spécifie le résultat de la SetAbortProc fonction. Certaines des valeurs suivantes sont plus probables que d’autres, mais toutes sont possibles.

  • SP_ERROR Erreur générale.

  • SP_OUTOFDISK L’espace disque insuffisant est actuellement disponible pour lepooling, et aucun espace supplémentaire ne sera disponible.

  • SP_OUTOFMEMORY La mémoire insuffisante est disponible pour lepooling.

  • SP_USERABORT L’utilisateur a terminé le travail via le Gestionnaire d’impression.

Notes

Si une application doit autoriser l’annulation du travail d’impression pendant lepooling, elle doit définir la fonction d’abandon avant le démarrage du travail d’impression avec la StartDoc fonction membre. Le Gestionnaire d’impression appelle la fonction d’abandon pendant lepooling pour permettre à l’application d’annuler le travail d’impression ou de traiter les conditions d’espace disque insuffisantes. Si aucune fonction d’abandon n’est définie, le travail d’impression échoue s’il n’y a pas suffisamment d’espace disque pour lepooling.

Les fonctionnalités de Microsoft Visual C++ simplifient la création de la fonction de rappel passée à SetAbortProc. L’adresse passée à la EnumObjects fonction membre est un pointeur vers une fonction exportée avec __declspec(dllexport) et avec la convention d’appel __stdcall .

Vous n’avez pas non plus besoin d’exporter le nom de la fonction dans une EXPORTS instruction dans le fichier de définition de module de votre application. Vous pouvez à la place utiliser le modificateur de EXPORT fonction, comme dans

BOOL CALLBACK EXPORT AFunction( HDC, int );

pour que le compilateur émette l’enregistrement d’exportation approprié pour l’exportation par nom sans alias. Cela fonctionne pour la plupart des besoins. Dans certains cas spéciaux, tels que l’exportation d’une fonction par ordinal ou l’alias de l’exportation, vous devez toujours utiliser une EXPORTS instruction dans un fichier de définition de module.

Les interfaces d’inscription de rappel sont désormais de type sécurisé (vous devez passer un pointeur de fonction qui pointe vers le type de fonction approprié pour le rappel spécifique).

Toutes les fonctions de rappel doivent intercepter les exceptions Microsoft Foundation avant de revenir à Windows, car les exceptions ne peuvent pas être levées entre les limites de rappel. Pour plus d’informations sur les exceptions, consultez l’article Exceptions.

CDC::SetArcDirection

Définit la direction du dessin à utiliser pour les fonctions arc et rectangle.

int SetArcDirection(int nArcDirection);

Paramètres

nArcDirection
Spécifie la nouvelle direction de l’arc. Ce paramètre peut être l’une des valeurs suivantes :

  • AD_COUNTERCLOCKWISE Figures dessinées dans le sens inverse.

  • AD_CLOCKWISE Figures dessinées dans le sens des aiguilles d’une montre.

Valeur de retour

Spécifie l’ancienne direction de l’arc, si elle réussit ; sinon 0.

Notes

La direction par défaut est au sens inverse. La SetArcDirection fonction spécifie la direction dans laquelle les fonctions suivantes dessinent :

Arc Secteurs
ArcTo Rectangle
Chord RoundRect
Ellipse

CDC::SetAttribDC

Appelez cette fonction pour définir le contexte de l’appareil d’attribut. m_hAttribDC

virtual void SetAttribDC(HDC hDC);

Paramètres

hDC
Contexte d’appareil Windows.

Notes

Cette fonction membre n’attache pas le contexte de l’appareil à l’objet CDC . Seul le contexte d’appareil de sortie est attaché à un CDC objet.

CDC::SetBkColor

Définit la couleur d’arrière-plan actuelle sur la couleur spécifiée.

virtual COLORREF SetBkColor(COLORREF crColor);

Paramètres

crColor
Spécifie la nouvelle couleur d’arrière-plan.

Valeur de retour

Couleur d’arrière-plan précédente sous forme de valeur de couleur RVB. Si une erreur se produit, la valeur de retour est 0x80000000.

Notes

Si le mode d’arrière-plan est OPAQUE, le système utilise la couleur d’arrière-plan pour combler les lacunes dans les lignes styletées, les écarts entre les lignes hachées dans les pinceaux et l’arrière-plan dans les cellules de caractères. Le système utilise également la couleur d’arrière-plan lors de la conversion de bitmaps entre les contextes de couleur et d’appareil monochrome.

Si l’appareil ne peut pas afficher la couleur spécifiée, le système définit la couleur d’arrière-plan sur la couleur physique la plus proche.

CDC::SetBkMode

Définit le mode d’arrière-plan.

int SetBkMode(int nBkMode);

Paramètres

nBkMode
Spécifie le mode à définir. Ce paramètre peut être l’une des valeurs suivantes :

  • OPAQUE L’arrière-plan est rempli de la couleur d’arrière-plan actuelle avant que le texte, le pinceau haché ou le stylet soit dessiné. Il s’agit du mode d’arrière-plan par défaut.

  • TRANSPARENT L’arrière-plan n’est pas modifié avant le dessin.

Valeur de retour

Mode d’arrière-plan précédent.

Notes

Le mode arrière-plan définit si le système supprime les couleurs d’arrière-plan existantes sur l’aire de dessin avant de dessiner du texte, des pinceaux hachés ou un stylet qui n’est pas un trait unie.

Exemple

Consultez l’exemple pour CWnd::OnCtlColor.

CDC::SetBoundsRect

Contrôle l’accumulation d’informations de rectangle englobant pour le contexte d’appareil spécifié.

UINT SetBoundsRect(
    LPCRECT lpRectBounds,
    UINT flags);

Paramètres

lpRectBounds
Pointe vers une structure ou CRect un RECT objet utilisé pour définir le rectangle englobant. Les dimensions de rectangle sont données en coordonnées logiques. Ce paramètre peut être NULL.

flags
Spécifie la façon dont le nouveau rectangle sera combiné avec le rectangle cumulé. Ce paramètre peut être une combinaison des valeurs suivantes :

  • DCB_ACCUMULATE Ajoutez le rectangle spécifié par lpRectBounds le rectangle englobant (à l’aide d’une opération rectangle-union).

  • DCB_DISABLE Désactiver l’accumulation des limites.

  • DCB_ENABLE Activez l’accumulation de limites. (Le paramètre par défaut pour l’accumulation de limites est désactivé.)

Valeur de retour

État actuel du rectangle englobant, si la fonction réussit. Comme flags, la valeur de retour peut être une combinaison de DCB_ valeurs :

  • DCB_ACCUMULATE Le rectangle englobant n’est pas vide. Cette valeur est toujours définie.

  • DCB_DISABLE L’accumulation de limites est désactivée.

  • DCB_ENABLE L’accumulation de limites est activée.

Notes

Windows peut gérer un rectangle englobant pour toutes les opérations de dessin. Ce rectangle peut être interrogé et réinitialisé par l’application. Les limites de dessin sont utiles pour invalider les caches bitmap.

CDC::SetBrushOrg

Spécifie l’origine que GDI affectera au pinceau suivant que l’application sélectionne dans le contexte de l’appareil.

CPoint SetBrushOrg(
    int x,
    int y);

CPoint SetBrushOrg(POINT point);

Paramètres

x
Spécifie la coordonnée x (en unités d’appareil) de la nouvelle origine. Cette valeur doit être comprise entre 0 et 7.

y
Spécifie la coordonnée y (en unités d’appareil) de la nouvelle origine. Cette valeur doit être comprise entre 0 et 7.

point
Spécifie les coordonnées x et y de la nouvelle origine. Chaque valeur doit être comprise entre 0 et 7. Vous pouvez passer une POINT structure ou un CPoint objet pour ce paramètre.

Valeur de retour

Origine précédente du pinceau dans les unités d’appareil.

Notes

Les coordonnées par défaut de l’origine du pinceau sont (0, 0). Pour modifier l’origine d’un pinceau, appelez la UnrealizeObject fonction pour l’objet CBrush , appelez SetBrushOrg, puis appelez la SelectObject fonction membre pour sélectionner le pinceau dans le contexte de l’appareil.

N’utilisez SetBrushOrg pas d’objets boursiers CBrush .

CDC::SetColorAdjustment

Définit les valeurs d’ajustement des couleurs pour le contexte de l’appareil à l’aide des valeurs spécifiées.

BOOL SetColorAdjustment(const COLORADJUSTMENT* lpColorAdjust);

Paramètres

lpColorAdjust
Pointe vers une COLORADJUSTMENT structure de données contenant les valeurs d’ajustement des couleurs.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Les valeurs d’ajustement de couleur sont utilisées pour ajuster la couleur d’entrée de la bitmap source pour les appels à la fonction membre lorsque HALFTONE le CDC::StretchBlt mode est défini.

CDC::SetDCBrushColor

Définit la couleur de pinceau du contexte d’appareil actuel (DC) sur la valeur de couleur spécifiée.

COLORREF SetDCBrushColor(COLORREF crColor);

Paramètres

crColor
Spécifie la nouvelle couleur de pinceau.

Valeur de retour

Si la fonction réussit, la valeur de retour spécifie la couleur de pinceau DC précédente en tant que COLORREF valeur.

Si la fonction échoue, la valeur de retour est CLR_INVALID.

Notes

Cette méthode émule les fonctionnalités de la fonction SetDCBrushColor, comme décrit dans le Kit de développement logiciel (SDK) Windows.

CDC::SetDCPenColor

Définit la couleur du stylet de contexte d’appareil (DC) actuelle sur la valeur de couleur spécifiée.

COLORREF SetDCPenColor(COLORREF crColor);

Paramètres

crColor
Spécifie la nouvelle couleur de stylet.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Cette fonction membre utilise la fonction SetDCPenColorWin32, comme décrit dans le Kit de développement logiciel (SDK) Windows.

CDC::SetGraphicsMode

Définit le mode graphique pour le contexte d’appareil spécifié.

int SetGraphicsMode(int iMode);

Paramètres

iMode
Spécifie le mode graphique. Pour obtenir la liste des valeurs que ce paramètre peut prendre, consultez SetGraphicsMode.

Valeur de retour

Retourne l’ancien mode graphique en cas de réussite.

Retourne 0 en cas d’échec. Pour obtenir des informations plus complètes sur les erreurs, appelez GetLastError.

Notes

Cette méthode encapsule la fonction SetGraphicsModeGDI Windows .

CDC::SetLayout

Appelez cette fonction membre pour modifier la disposition du texte et des graphiques d’un contexte d’appareil à droite à gauche, la disposition standard pour les cultures telles que l’arabe et l’hébreu.

DWORD SetLayout(DWORD dwLayout);

Paramètres

dwLayout
Disposition du contexte de l’appareil et indicateurs de contrôle bitmap. Il peut s’agir d’une combinaison des valeurs suivantes.

Valeur Signification
LAYOUT_BITMAPORIENTATIONPRESERVED Désactive toute réflexion pour les appels à CDC::BitBlt et CDC::StretchBlt.
LAYOUT_RTL Définit la disposition horizontale par défaut de droite à gauche.
LAYOUT_LTR Définit la disposition par défaut de gauche à droite.

Valeur de retour

Si elle réussit, la disposition précédente du contexte de l’appareil.

En cas d’échec, GDI_ERROR. Pour obtenir des informations plus complètes sur les erreurs, appelez GetLastError.

Notes

Normalement, vous n’appelez SetLayout pas de fenêtre. Au lieu de cela, vous contrôlez la disposition de droite à gauche dans une fenêtre en définissant les styles de fenêtre étendus tels que WS_EX_RTLREADING. Un contexte d’appareil, tel qu’une imprimante ou un métafichier, n’hérite pas de cette disposition. La seule façon de définir le contexte de l’appareil pour une disposition de droite à gauche consiste à appeler SetLayout.

Si vous appelez SetLayout(LAYOUT_RTL), SetLayout remplace automatiquement le mode de mappage par MM_ISOTROPIC. Par conséquent, un appel ultérieur à GetMapMode retournera MM_ISOTROPIC au lieu de MM_TEXT.

Dans certains cas, comme avec de nombreuses bitmaps, vous pouvez conserver la disposition de gauche à droite. Dans ces cas, affichez l’image en appelant BitBlt ou en définissant l’indicateur de contrôle bitmap sur LAYOUT_BITMAPORIENTATIONPRESERVEDdwLayout .StretchBlt

Une fois que vous avez modifié la disposition avec l’indicateur LAYOUT_RTL , les indicateurs spécifiant normalement la droite ou la gauche sont inversés. Pour éviter toute confusion, vous pouvez définir d’autres noms pour les indicateurs standard. Pour obtenir la liste des noms d’indicateurs alternatifs suggérés, consultez SetLayout le Kit de développement logiciel (SDK) Windows.

CDC::SetMapMode

Définit le mode de mappage.

virtual int SetMapMode(int nMapMode);

Paramètres

nMapMode
Spécifie le nouveau mode de mappage. Il peut s’agir de l’une des valeurs suivantes :

  • MM_ANISOTROPIC Les unités logiques sont converties en unités arbitraires avec des axes arbitrairement mis à l’échelle. La définition du mode MM_ANISOTROPIC de mappage ne modifie pas les paramètres de fenêtre ou de fenêtre d’affichage actuels. Pour modifier les unités, l’orientation et la mise à l’échelle, appelez les fonctions membres et SetViewportExt les SetWindowExt unités.

  • MM_HIENGLISH Chaque unité logique est convertie en 0,001 pouce. Positif x est à droite ; positif y est en hausse.

  • MM_HIMETRIC Chaque unité logique est convertie en 0,01 millimètre. Positif x est à droite ; positif y est en hausse.

  • MM_ISOTROPIC Les unités logiques sont converties en unités arbitraires avec des axes identiques ; autrement dit, 1 unité le long de l’axe x est égale à 1 unité le long de l’axe y. Utilisez les fonctions membres et SetViewportExt les SetWindowExt fonctions pour spécifier les unités souhaitées et l’orientation des axes. GDI effectue les ajustements nécessaires pour s’assurer que les unités x et y restent de la même taille.

  • MM_LOENGLISH Chaque unité logique est convertie en 0,01 pouce. Positif x est à droite ; positif y est en hausse.

  • MM_LOMETRIC Chaque unité logique est convertie en 0,1 millimètre. Positif x est à droite ; positif y est en hausse.

  • MM_TEXT Chaque unité logique est convertie en 1 pixels d’appareil. Positif x est à droite ; positif y est en panne.

  • MM_TWIPS Chaque unité logique est convertie en 1/20 d’un point. (Étant donné qu’un point est de 1/72 pouces, un twip est de 1/1440 pouces.) Positif x est à droite ; positif y est en hausse.

Valeur de retour

Mode de mappage précédent.

Notes

Le mode de mappage définit l’unité de mesure utilisée pour convertir des unités logiques en unités d’appareil ; il définit également l’orientation des axes x et y de l’appareil. GDI utilise le mode de mappage pour convertir les coordonnées logiques en coordonnées d’appareil appropriées. Le MM_TEXT mode permet aux applications de fonctionner en pixels d’appareil, où 1 unité est égale à 1 pixel. La taille physique d’un pixel varie d’un appareil à l’autre.

Les MM_HIENGLISHmodes , , MM_LOMETRICMM_HIMETRICMM_LOENGLISHMM_TWIPS et les modes sont utiles pour les applications qui doivent dessiner dans des unités physiquement significatives (telles que pouces ou millimètres). Le MM_ISOTROPIC mode garantit un rapport d’aspect de 1:1, ce qui est utile lorsqu’il est important de conserver la forme exacte d’une image. Le MM_ANISOTROPIC mode permet aux coordonnées x et y d’être ajustées indépendamment.

Remarque

Si vous appelez SetLayout pour modifier le contrôleur de domaine (contexte de l’appareil) en disposition de droite à gauche, SetLayout modifie automatiquement le mode MM_ISOTROPICde mappage en .

Exemple

Consultez l’exemple pour CView::OnPrepareDC.

CDC::SetMapperFlags

Modifie la méthode utilisée par le mappeur de police lorsqu’elle convertit une police logique en police physique.

DWORD SetMapperFlags(DWORD dwFlag);

Paramètres

dwFlag
Spécifie si le mappeur de police tente de faire correspondre la hauteur et la largeur d’une police à l’appareil. Lorsque cette valeur est ASPECT_FILTERING, le mappeur sélectionne uniquement les polices dont l’aspect x et l’aspect y correspondent exactement à celles de l’appareil spécifié.

Valeur de retour

Valeur précédente de l’indicateur de mappeur de police.

Notes

Une application peut utiliser SetMapperFlags pour faire en sorte que le mappeur de police tente de choisir uniquement une police physique qui correspond exactement au rapport d’aspect de l’appareil spécifié.

Une application qui utilise uniquement des polices raster peut utiliser la SetMapperFlags fonction pour s’assurer que la police sélectionnée par le mappeur de polices est attrayante et lisible sur l’appareil spécifié. Les applications qui utilisent des polices scalables (TrueType) n’utilisent SetMapperFlagsgénéralement pas .

Si aucune police physique n’a un rapport d’aspect qui correspond à la spécification dans la police logique, GDI choisit un nouveau rapport d’aspect et sélectionne une police qui correspond à ce nouveau ratio d’aspect.

CDC::SetMiterLimit

Définit la limite pour la longueur des jointures mitreuse pour le contexte de l’appareil.

BOOL SetMiterLimit(float fMiterLimit);

Paramètres

fMiterLimit
Spécifie la nouvelle limite de mitreur pour le contexte de l’appareil.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

La longueur de mitreur est définie comme la distance entre l’intersection des murs de ligne à l’intérieur de la jointure à l’intersection des murs de ligne à l’extérieur de la jointure. La limite de mitre est le rapport maximal autorisé de la longueur de mitre à la largeur de ligne. La limite de mitreur par défaut est 10,0.

CDC::SetOutputDC

Appelez cette fonction membre pour définir le contexte de l’appareil de sortie. m_hDC

virtual void SetOutputDC(HDC hDC);

Paramètres

hDC
Contexte d’appareil Windows.

Notes

Cette fonction membre ne peut être appelée que lorsqu’un contexte d’appareil n’a pas été attaché à l’objet CDC . Cette fonction membre définit m_hDC mais n’attache pas le contexte de l’appareil à l’objet CDC .

CDC::SetPixel

Définit le pixel au point spécifié à l’approximation la plus proche de la couleur spécifiée par crColor.

COLORREF SetPixel(
    int x,
    int y,
    COLORREF crColor);

COLORREF SetPixel(
    POINT point,
    COLORREF crColor);

Paramètres

x
Spécifie la coordonnée x logique du point à définir.

y
Spécifie la coordonnée y logique du point à définir.

crColor
Valeur COLORREF RVB qui spécifie la couleur utilisée pour peindre le point. Consultez COLORREF le Kit de développement logiciel (SDK) Windows pour obtenir une description de cette valeur.

point
Spécifie les coordonnées x et y logiques du point à définir. Vous pouvez passer une POINT structure ou un CPoint objet pour ce paramètre.

Valeur de retour

Valeur RVB pour la couleur que le point est peint. Cette valeur peut être différente de celle spécifiée si crColor une approximation de cette couleur est utilisée. Si la fonction échoue (si le point est en dehors de la région de découpage), la valeur de retour est -1.

Notes

Le point doit se trouver dans la région de découpage. Si le point n’est pas dans la région de découpage, la fonction ne fait rien.

La fonction SetPixel n'est pas prise en charge par tous les périphériques. Pour déterminer si un appareil prend en charge SetPixel, appelez la GetDeviceCaps fonction membre avec l’index RASTERCAPS et vérifiez la valeur de retour de l’indicateur RC_BITBLT .

CDC::SetPixelV

Définit le pixel aux coordonnées spécifiées à l’approximation la plus proche de la couleur spécifiée.

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

BOOL SetPixelV(
    POINT point,
    COLORREF crColor);

Paramètres

x
Spécifie la coordonnée x, en unités logiques, du point à définir.

y
Spécifie la coordonnée y, en unités logiques, du point à définir.

crColor
Spécifie la couleur à utiliser pour peindre le point.

point
Spécifie les coordonnées x et y logiques du point à définir. Vous pouvez passer une POINT structure de données ou un CPoint objet pour ce paramètre.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Le point doit se trouver à la fois dans la région de découpage et dans la partie visible de la surface de l’appareil. Tous les appareils ne prennent pas en charge la fonction membre. Pour plus d’informations, consultez la RC_BITBLT fonctionnalité dans la CDC::GetDeviceCaps fonction membre. SetPixelV est plus rapide que SetPixel parce qu’il n’a pas besoin de retourner la valeur de couleur du point peint.

CDC::SetPolyFillMode

Définit le mode de remplissage des polygones.

int SetPolyFillMode(int nPolyFillMode);

Paramètres

nPolyFillMode
Spécifie le nouveau mode de remplissage. Cette valeur peut être l’une ou l’autre ALTERNATE WINDING. Le mode par défaut défini dans Windows est ALTERNATE.

Valeur de retour

Le mode de remplissage précédent, s’il réussit ; sinon 0.

Notes

Lorsque le mode de remplissage des polygones est ALTERNATE, le système remplit la zone entre les côtés impairs et pairs des polygones sur chaque ligne d’analyse. Autrement dit, le système remplit la zone entre le premier et le deuxième côté, entre le troisième et le quatrième côté, et ainsi de suite. Il s’agit du mode par défaut.

Lorsque le mode de remplissage de polygones est WINDING, le système utilise la direction dans laquelle une figure a été dessinée pour déterminer s’il faut remplir une zone. Chaque segment de ligne d’un polygone est dessiné dans le sens des aiguilles d’une montre ou dans un sens inverse. Chaque fois qu’une ligne imaginaire dessinée d’une zone fermée à l’extérieur d’une figure passe par un segment de ligne au niveau des aiguilles d’une montre, un nombre est incrémenté. Lorsque la ligne passe par un segment de ligne dans le sens inverse, le nombre est décrémenté. La zone est remplie si le nombre est différent de zéro lorsque la ligne atteint l’extérieur de la figure.

CDC::SetROP2

Définit le mode de dessin actuel.

int SetROP2(int nDrawMode);

Paramètres

nDrawMode
Spécifie le nouveau mode de dessin. Il peut s’agir de l’une des valeurs suivantes :

  • R2_BLACK Le pixel est toujours noir.

  • R2_WHITE Le pixel est toujours blanc.

  • R2_NOP Le pixel reste inchangé.

  • R2_NOT Le pixel est l’inverse de la couleur de l’écran.

  • R2_COPYPEN Le pixel est la couleur du stylet.

  • R2_NOTCOPYPEN Le pixel est l’inverse de la couleur du stylet.

  • R2_MERGEPENNOT Le pixel est une combinaison de la couleur du stylet et de l’inverse de la couleur de l’écran (pixel final = (~ pixel d’écran) | stylet).

  • R2_MASKPENNOT Le pixel est une combinaison des couleurs communes au stylet et à l’inverse de l’écran (pixel final = (~ pixel d’écran) & stylet).

  • R2_MERGENOTPEN Le pixel est une combinaison de la couleur de l’écran et de l’inverse de la couleur du stylet (pixel final = (~ stylet) pixel d’écran | ).

  • R2_MASKNOTPEN Le pixel est une combinaison des couleurs communes à l’écran et à l’inverse du stylet (pixel final = (~ stylet) pixels d’écran & ).

  • R2_MERGEPEN Le pixel est une combinaison de la couleur du stylet et de la couleur de l’écran (pixel final = pixel d’écran du stylet | ).

  • R2_NOTMERGEPEN Le pixel est l’inverse de la R2_MERGEPEN couleur (pixel final = ~ (pixel d’écran du stylet | )).

  • R2_MASKPEN Le pixel est une combinaison des couleurs communes au stylet et à l’écran (pixel final = pixel d’écran du stylet & ).

  • R2_NOTMASKPEN Le pixel est l’inverse de la R2_MASKPEN couleur (pixel final = ~ (pixel d’écran du stylet & )).

  • R2_XORPEN Le pixel est une combinaison des couleurs qui se trouvent dans le stylet ou dans l’écran, mais pas dans les deux (pixel final = pixel d’écran du stylet ^ ).

  • R2_NOTXORPEN Le pixel est l’inverse de la R2_XORPEN couleur (pixel final = ~ (pixel d’écran du stylet ^ )).

Valeur de retour

Mode de dessin précédent.

Il peut s’agir de l’une des valeurs fournies dans le Kit de développement logiciel (SDK) Windows.

Notes

Le mode dessin spécifie comment les couleurs du stylet et de l’intérieur des objets remplis sont combinées à la couleur déjà sur l’aire d’affichage.

Le mode dessin est destiné aux appareils raster uniquement ; elle ne s’applique pas aux appareils vectoriels. Les modes de dessin sont des codes d’opération raster binaires représentant toutes les combinaisons booléennes possibles de deux variables, à l’aide des opérateurs &binaires , |et ^ (exclusif |) et de l’opération ~unaire .

CDC::SetStretchBltMode

Définit le mode d’étirement bitmap pour la StretchBlt fonction membre.

int SetStretchBltMode(int nStretchMode);

Paramètres

nStretchMode
Spécifie le mode d’étirement. Il peut s’agir de l’une des valeurs suivantes :

Valeur Description
BLACKONWHITE Effectue une opération booléenne & à l’aide des valeurs de couleur pour les pixels éliminés et existants. Si la bitmap est une bitmap monochrome, ce mode conserve les pixels noirs au détriment des pixels blancs.
COLORONCOLOR Supprime les pixels. Ce mode supprime toutes les lignes de pixels supprimées sans essayer de conserver leurs informations.
HALFTONE Mappe les pixels du rectangle source en blocs de pixels dans le rectangle de destination. La couleur moyenne sur le bloc de destination de pixels est approximativement la couleur des pixels sources.
Après avoir défini le HALFTONE mode stretching, une application doit appeler la fonction SetBrushOrgEx Win32 pour définir l’origine du pinceau. Si ce n’est pas le cas, la mauvaise alignement des pinceaux se produit.
STRETCH_ANDSCANS Windows 95/98 : identique à BLACKONWHITE
STRETCH_DELETESCANS Windows 95/98 : identique à COLORONCOLOR
STRETCH_HALFTONE Windows 95/98 : identique à HALFTONE.
STRETCH_ORSCANS Windows 95/98 : identique à WHITEONBLACK
WHITEONBLACK Effectue une opération booléenne | à l’aide des valeurs de couleur pour les pixels éliminés et existants. Si la bitmap est une bitmap monochrome, ce mode conserve les pixels blancs au détriment des pixels noirs.

Valeur de retour

Mode d’étirement précédent. Il peut s’agir de STRETCH_ANDSCANS, STRETCH_DELETESCANS ou STRETCH_ORSCANS.

Notes

Le mode d’étirement bitmap définit la façon dont les informations sont supprimées des bitmaps compressées à l’aide de la fonction.

Les BLACKONWHITEmodes () et WHITEONBLACK(STRETCH_ANDSCANSSTRETCH_ORSCANS) sont généralement utilisés pour conserver les pixels de premier plan dans les bitmaps monochromes. Le COLORONCOLORmode (STRETCH_DELETESCANS) est généralement utilisé pour conserver la couleur dans les bitmaps de couleur.

Le HALFTONE mode nécessite plus de traitement de l’image source que les trois autres modes ; il est plus lent que les autres, mais produit des images de qualité supérieure. En outre, SetBrushOrgEx doit être appelé après avoir défini le HALFTONE mode pour éviter une mauvaise alignement des pinceaux.

D’autres modes d’étirement peuvent également être disponibles en fonction des fonctionnalités du pilote de périphérique.

CDC::SetTextAlign

Définit les indicateurs d’alignement du texte.

UINT SetTextAlign(UINT nFlags);

Paramètres

nFlags
Spécifie les indicateurs d’alignement du texte. Les indicateurs spécifient la relation entre un point et un rectangle qui limite le texte. Le point peut être la position ou les coordonnées actuelles spécifiées par une fonction de sortie de texte. Le rectangle qui limite le texte est défini par les cellules de caractères adjacentes dans la chaîne de texte. Le nFlags paramètre peut être un ou plusieurs indicateurs des trois catégories suivantes. Choisissez un seul indicateur dans chaque catégorie. La première catégorie affecte l’alignement du texte dans la direction x :

  • TA_CENTER Aligne le point avec le centre horizontal du rectangle englobant.

  • TA_LEFT Aligne le point avec le côté gauche du rectangle englobant. Il s’agit du paramètre par défaut.

  • TA_RIGHT Aligne le point avec le côté droit du rectangle englobant.

La deuxième catégorie affecte l’alignement du texte dans la direction y :

  • TA_BASELINE Aligne le point avec la ligne de base de la police choisie.

  • TA_BOTTOM Aligne le point avec le bas du rectangle englobant.

  • TA_TOP Aligne le point avec le haut du rectangle englobant. Il s’agit du paramètre par défaut.

La troisième catégorie détermine si la position actuelle est mise à jour lorsque le texte est écrit :

  • TA_NOUPDATECP Ne met pas à jour la position actuelle après chaque appel à une fonction de sortie de texte. Il s’agit du paramètre par défaut.

  • TA_UPDATECP Met à jour la position x actuelle après chaque appel à une fonction de sortie de texte. La nouvelle position se trouve à droite du rectangle englobant pour le texte. Lorsque cet indicateur est défini, les coordonnées spécifiées dans les appels à la TextOut fonction membre sont ignorées.

Valeur de retour

Paramètre d’alignement du texte précédent, s’il réussit. L’octet de bas ordre contient le paramètre horizontal et l’octet de classement élevé contient le paramètre vertical ; sinon 0.

Notes

Les TextOut fonctions membres et ExtTextOut les fonctions membres utilisent ces indicateurs lors du positionnement d’une chaîne de texte sur un affichage ou un appareil. Les indicateurs spécifient la relation entre un point spécifique et un rectangle qui limite le texte. Les coordonnées de ce point sont passées en tant que paramètres à la TextOut fonction membre. Le rectangle qui limite le texte est formé par les cellules de caractères adjacentes dans la chaîne de texte.

CDC::SetTextCharacterExtra

Définit la quantité d’espacement intercharacteur.

int SetTextCharacterExtra(int nCharExtra);

Paramètres

nCharExtra
Spécifie la quantité d’espace supplémentaire (en unités logiques) à ajouter à chaque caractère. Si le mode de mappage actuel n’est pas MM_TEXT, nCharExtra est transformé et arrondi au pixel le plus proche.

Valeur de retour

Quantité de l’espacement de l’intercharacteur précédent.

Notes

GDI ajoute cet espacement à chaque caractère, y compris les caractères d’arrêt, lorsqu’il écrit une ligne de texte dans le contexte de l’appareil. La valeur par défaut de l’espacement intercharacteur est 0.

CDC::SetTextColor

Définit la couleur du texte sur la couleur spécifiée.

virtual COLORREF SetTextColor(COLORREF crColor);

Paramètres

crColor
Spécifie la couleur du texte sous forme de valeur de couleur RVB.

Valeur de retour

Valeur RVB pour la couleur de texte précédente.

Notes

Le système utilise cette couleur de texte lors de l’écriture de texte dans ce contexte d’appareil et lors de la conversion de bitmaps entre les contextes de couleur et d’appareil monochrome.

Si l’appareil ne peut pas représenter la couleur spécifiée, le système définit la couleur de texte sur la couleur physique la plus proche. La couleur d’arrière-plan d’un caractère est spécifiée par les fonctions membres et SetBkMode les SetBkColor fonctions membres.

Exemple

Consultez l’exemple pour CWnd::OnCtlColor.

CDC::SetTextJustification

Ajoute de l’espace aux caractères de saut dans une chaîne.

int SetTextJustification(
    int nBreakExtra,
    int nBreakCount);

Paramètres

nBreakExtra
Spécifie l’espace supplémentaire total à ajouter à la ligne de texte (en unités logiques). Si le mode de mappage actuel n’est pas MM_TEXT, la valeur donnée par ce paramètre est convertie en mode de mappage actuel et arrondie à l’unité d’appareil la plus proche.

nBreakCount
Spécifie le nombre de caractères d’arrêt dans la ligne.

Valeur de retour

Une si la fonction réussit ; sinon 0.

Notes

Une application peut utiliser les fonctions membres pour récupérer le GetTextMetrics caractère d’arrêt d’une police.

Une fois la SetTextJustification fonction membre appelée, un appel à une fonction de sortie de texte (par exemple TextOut) répartit uniformément l’espace supplémentaire spécifié entre le nombre spécifié de caractères d’arrêt. Le caractère d’arrêt est généralement le caractère d’espace (ASCII 32), mais peut être défini par une police comme un autre caractère.

La fonction GetTextExtent membre est généralement utilisée avec SetTextJustification. GetTextExtent calcule la largeur d’une ligne donnée avant l’alignement. Une application peut déterminer la quantité d’espace à spécifier dans le nBreakExtra paramètre en soustrayant la valeur retournée par GetTextExtent la largeur de la chaîne après l’alignement.

La SetTextJustification fonction peut être utilisée pour aligner une ligne qui contient plusieurs exécutions dans différentes polices. Dans ce cas, la ligne doit être créée fragmentaire en alignant et en écrivant chaque exécution séparément.

Étant donné que les erreurs d’arrondi peuvent se produire pendant l’alignement, le système conserve un terme d’erreur en cours d’exécution qui définit l’erreur actuelle. Lors de l’alignement d’une ligne qui contient plusieurs exécutions, GetTextExtent utilise automatiquement ce terme d’erreur lorsqu’il calcule l’étendue de l’exécution suivante. Cela permet à la fonction de sortie de texte de fusionner l’erreur dans la nouvelle exécution.

Une fois chaque ligne alignée, ce terme d’erreur doit être effacé pour empêcher son incorporation dans la ligne suivante. Le terme peut être effacé en appelant SetTextJustification avec nBreakExtra la valeur 0.

CDC::SetViewportExt

Définit les étendues x et y de la fenêtre d’affichage du contexte de l’appareil.

virtual CSize SetViewportExt(
    int cx,
    int cy);

CSize SetViewportExt(SIZE size);

Paramètres

cx
Spécifie l’étendue x de la fenêtre d’affichage (dans les unités d’appareil).

cy
Spécifie l’étendue y de la fenêtre d’affichage (en unités d’appareil).

size
Spécifie les étendues x et y de la fenêtre d’affichage (dans les unités d’appareil).

Valeur de retour

Étendues précédentes de la fenêtre d’affichage en tant qu’objet CSize . Lorsqu’une erreur se produit, les coordonnées x et y de l’objet retourné CSize sont toutes deux définies sur 0.

Notes

La fenêtre d’affichage, ainsi que la fenêtre de contexte d’appareil, définit la façon dont GDI mappe les points du système de coordonnées logiques aux points du système de coordonnées de l’appareil réel. En d’autres termes, ils définissent la façon dont GDI convertit les coordonnées logiques en coordonnées d’appareil.

Lorsque les modes de mappage suivants sont définis, les appels à SetWindowExt et SetViewportExt sont ignorés :

MM_HIENGLISH MM_LOMETRIC
MM_HIMETRIC MM_TEXT
MM_LOENGLISH MM_TWIPS

Quand MM_ISOTROPIC le mode est défini, une application doit appeler la SetWindowExt fonction membre avant d’appeler SetViewportExt.

Exemple

Consultez l’exemple pour CView::OnPrepareDC.

CDC::SetViewportOrg

Définit l’origine de la fenêtre d’affichage du contexte de l’appareil.

virtual CPoint SetViewportOrg(
    int x,
    int y);

CPoint SetViewportOrg(POINT point);

Paramètres

x
Spécifie la coordonnée x (en unités d’appareil) de l’origine de la fenêtre d’affichage. La valeur doit se trouver dans la plage du système de coordonnées de l’appareil.

y
Spécifie la coordonnée y (en unités d’appareil) de l’origine de la fenêtre d’affichage. La valeur doit se trouver dans la plage du système de coordonnées de l’appareil.

point
Spécifie l’origine de la fenêtre d’affichage. Les valeurs doivent se trouver dans la plage du système de coordonnées de l’appareil. Vous pouvez passer une POINT structure ou un CPoint objet pour ce paramètre.

Valeur de retour

Origine précédente de la fenêtre d’affichage (dans les coordonnées de l’appareil) en tant qu’objet CPoint .

Notes

La fenêtre d’affichage, ainsi que la fenêtre de contexte d’appareil, définit la façon dont GDI mappe les points du système de coordonnées logiques aux points du système de coordonnées de l’appareil réel. En d’autres termes, ils définissent la façon dont GDI convertit les coordonnées logiques en coordonnées d’appareil.

L’origine de la fenêtre marque le point dans le système de coordonnées de l’appareil auquel GDI mappe l’origine de la fenêtre, point dans le système de coordonnées logique spécifié par la SetWindowOrg fonction membre. GDI mappe tous les autres points en suivant le même processus requis pour mapper l’origine de la fenêtre à l’origine de la fenêtre. Par exemple, tous les points d’un cercle autour du point à l’origine de la fenêtre se trouveront dans un cercle autour du point à l’origine de la fenêtre. De même, tous les points d’une ligne qui passe par l’origine de la fenêtre se trouveront dans une ligne qui traverse l’origine de la fenêtre.

Exemple

Consultez l’exemple pour CView::OnPrepareDC.

CDC::SetWindowExt

Définit les étendues x et y de la fenêtre associée au contexte de l’appareil.

virtual CSize SetWindowExt(
    int cx,
    int cy);

CSize SetWindowExt(SIZE size);

Paramètres

cx
Spécifie l’étendue x (en unités logiques) de la fenêtre.

cy
Spécifie l’étendue y (en unités logiques) de la fenêtre.

size
Spécifie les étendues x et y (en unités logiques) de la fenêtre.

Valeur de retour

Étendues précédentes de la fenêtre (en unités logiques) en tant qu’objet CSize . Si une erreur se produit, les coordonnées x et y de l’objet retourné CSize sont toutes deux définies sur 0.

Notes

La fenêtre, ainsi que la fenêtre d’affichage de contexte d’appareil, définit la façon dont GDI mappe les points du système de coordonnées logiques aux points du système de coordonnées de l’appareil.

Lorsque les modes de mappage suivants sont définis, les appels à SetWindowExt et SetViewportExt les fonctions sont ignorés :

  • MM_HIENGLISH

  • MM_HIMETRIC

  • MM_LOENGLISH

  • MM_LOMETRIC

  • MM_TEXT

  • MM_TWIPS

Lorsque MM_ISOTROPIC le mode est défini, une application doit appeler la fonction membre avant d’appeler SetWindowExt SetViewportExt.

Exemple

Consultez l’exemple pour CView::OnPrepareDC.

CDC::SetWindowOrg

Définit l’origine de la fenêtre du contexte de l’appareil.

CPoint SetWindowOrg(
    int x,
    int y);

CPoint SetWindowOrg(POINT point);

Paramètres

x
Spécifie la coordonnée x logique de la nouvelle origine de la fenêtre.

y
Spécifie la coordonnée y logique de la nouvelle origine de la fenêtre.

point
Spécifie les coordonnées logiques de la nouvelle origine de la fenêtre. Vous pouvez passer une POINT structure ou un CPoint objet pour ce paramètre.

Valeur de retour

Origine précédente de la fenêtre en tant qu’objet CPoint .

Notes

La fenêtre, ainsi que la fenêtre d’affichage de contexte d’appareil, définit la façon dont GDI mappe les points du système de coordonnées logiques aux points du système de coordonnées de l’appareil.

L’origine de la fenêtre marque le point dans le système de coordonnées logique à partir duquel GDI mappe l’origine de la fenêtre d’affichage, point dans le système de coordonnées de l’appareil spécifié par la SetWindowOrg fonction. GDI mappe tous les autres points en suivant le même processus requis pour mapper l’origine de la fenêtre à l’origine de la fenêtre. Par exemple, tous les points d’un cercle autour du point à l’origine de la fenêtre se trouveront dans un cercle autour du point à l’origine de la fenêtre. De même, tous les points d’une ligne qui passe par l’origine de la fenêtre se trouveront dans une ligne qui traverse l’origine de la fenêtre.

CDC::SetWorldTransform

Définit une transformation linéaire à deux dimensions entre l’espace mondial et l’espace de page pour le contexte d’appareil spécifié. Cette transformation peut être utilisée pour mettre à l’échelle, faire pivoter, shélier ou traduire la sortie graphique.

BOOL SetWorldTransform(const XFORM& rXform);

Paramètres

rXform
Référence à une XFORM structure qui contient les données de transformation.

Valeur de retour

Retourne une valeur différente de zéro en cas de réussite.

Retourne 0 en cas d’échec.

Pour obtenir des informations plus complètes sur les erreurs, appelez GetLastError.

Notes

Cette méthode encapsule la fonction SetWorldTransformGDI Windows .

CDC::StartDoc

Informe le pilote de périphérique qu’un nouveau travail d’impression démarre et que tous les appels et suivants StartPage EndPage doivent être mis en pool sous le même travail jusqu’à ce qu’un EndDoc appel se produise.

int StartDoc(LPDOCINFO lpDocInfo);
int StartDoc(LPCTSTR lpszDocName);

Paramètres

lpDocInfo
Pointe vers une DOCINFO structure contenant le nom du fichier de document et le nom du fichier de sortie.

lpszDocName
Pointeur vers une chaîne contenant le nom du fichier de document.

Valeur de retour

Si la fonction réussit, la valeur de retour est supérieure à zéro. Cette valeur est l’identificateur de travail d’impression du document.

Si la fonction échoue, la valeur de retour est inférieure ou égale à zéro.

Notes

Cela garantit que les documents plus longs qu’une page ne seront pas entrelacés avec d’autres travaux.

Pour les versions 3.1 et ultérieures de Windows, cette fonction remplace l’échappement de l’imprimante STARTDOC . L’utilisation de cette fonction garantit que les documents contenant plusieurs pages ne sont pas entrelacés avec d’autres travaux d’impression.

StartDoc ne doit pas être utilisé dans les métafichiers.

Exemple

Ce fragment de code obtient l’imprimante par défaut, ouvre une tâche d’impression et spool une page avec « Hello, World ! » sur celle-ci. Étant donné que le texte imprimé par ce code n’est pas mis à l’échelle aux unités logiques de l’imprimante, le texte de sortie peut se trouver dans de telles petites lettres que le résultat n’est pas lisible. Les fonctions de mise à l’échelle cdc, telles que SetMapMode, SetViewportOrget SetWindowExt, peuvent être utilisées pour corriger la mise à l’échelle.

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

Appelez cette fonction membre pour préparer le pilote d’imprimante pour recevoir des données.

int StartPage();

Valeur de retour

Supérieur ou égal à 0 si la fonction réussit, ou une valeur négative si une erreur s’est produite.

Notes

StartPageremplace les échappements et BANDINFO les NEWFRAME échappements.

Pour obtenir une vue d’ensemble de la séquence d’appels d’impression, consultez la StartDoc fonction membre.

Le système désactive la ResetDC fonction membre entre les appels à StartPage et EndPage.

Exemple

Consultez l’exemple pour CDC::StartDoc.

CDC::StretchBlt

Copie une image bitmap depuis un rectangle source vers un rectangle de destination, en étirant ou en compressant le bitmap si nécessaire pour l'adapter aux dimensions du rectangle de destination.

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

Paramètres

x
Spécifie la coordonnée x (en unités logiques) de l'angle supérieur gauche du rectangle de destination.

y
Spécifie la coordonnée y (en unités logiques) de l'angle supérieur gauche du rectangle de destination.

nWidth
Spécifie la largeur (en unités logiques) du rectangle de destination.

nHeight
Spécifie la hauteur (en unités logiques) du rectangle de destination.

pSrcDC
Spécifie le contexte du périphérique source.

xSrc
Spécifie la coordonnée x (en unités logiques) de l'angle supérieur gauche du rectangle source.

ySrc
Spécifie la coordonnée y (en unités logiques) de l'angle supérieur gauche du rectangle source.

nSrcWidth
Spécifie la largeur (en unités logiques) du rectangle source.

nSrcHeight
Spécifie la hauteur (en unités logiques) du rectangle source.

dwRop
Spécifie l'opération de rastérisation à effectuer. Le code d'une opération de rastérisation définit la façon dont GDI associe les couleurs dans les opérations de sortie qui impliquent le pinceau actuel, un éventuel bitmap source et un bitmap de destination. Ce paramètre peut avoir l'une des valeurs suivantes :

  • BLACKNESS Active toutes les sorties noires.

  • DSTINVERT Inverse la bitmap de destination.

  • MERGECOPYCombine le modèle et la bitmap source à l’aide de l’opérateur AND booléen.

  • MERGEPAINTCombine la bitmap source inversée avec la bitmap de destination à l’aide de l’opérateur OR booléen.

  • NOTSRCCOPY Copie la bitmap source inversée vers la destination.

  • NOTSRCERASEInverse le résultat de la combinaison des bitmaps de destination et de source à l’aide de l’opérateur OR booléen.

  • PATCOPY Copie le modèle dans la bitmap de destination.

  • PATINVERTCombine la bitmap de destination avec le modèle à l’aide de l’opérateur XOR booléen.

  • PATPAINTCombine la bitmap source inversée avec le modèle à l’aide de l’opérateur OR booléen. Combine le résultat de cette opération avec la bitmap de destination à l’aide de l’opérateur OR booléen.

  • SRCANDCombine les pixels de la destination et des bitmaps sources à l’aide de l’opérateur AND booléen.

  • SRCCOPY Copie la bitmap source dans la bitmap de destination.

  • SRCERASE Inverse la bitmap de destination et combine le résultat avec la bitmap source à l’aide de l’opérateur BOOlean AND .

  • SRCINVERTCombine les pixels de la destination et des bitmaps sources à l’aide de l’opérateur XOR booléen.

  • SRCPAINTCombine les pixels de la destination et des bitmaps sources à l’aide de l’opérateur OR booléen.

  • WHITENESS Active toutes les sorties blanches.

Valeur de retour

Une valeur différente de zéro si le bitmap est dessiné ; sinon, 0.

Notes

La fonction utilise le mode d'étirement du contexte du périphérique de destination (défini par SetStretchBltMode) afin de savoir comment étirer ou compresser le bitmap.

La StretchBlt fonction déplace la bitmap de l’appareil source donné par pSrcDC l’appareil de destination représenté par l’objet de contexte d’appareil dont la fonction membre est appelée. Les xSrcparamètres , et les nSrcHeight ySrcnSrcWidthparamètres définissent l’angle supérieur gauche et les dimensions du rectangle source. Les xparamètres , et les nHeight nWidthparamètres ydonnent le coin supérieur gauche et les dimensions du rectangle de destination. L’opération raster spécifiée par dwRop définit la façon dont la bitmap source et les bits déjà présents sur l’appareil de destination sont combinés.

La StretchBlt fonction crée une image miroir d’une bitmap si les signes des nSrcWidth paramètres et nWidth /ou nSrcHeight nHeight des signes diffèrent. Si nSrcWidth et nWidth ont des signes différents, la fonction crée une image miroir de la bitmap le long de l’axe x. Si nSrcHeight et nHeight ont des signes différents, la fonction crée une image miroir de la bitmap le long de l’axe y.

La fonction StretchBlt étire ou compresse le bitmap source en mémoire, puis copie le résultat vers la destination. Si un modèle doit être fusionné avec le résultat, il n’est pas fusionné tant que la bitmap source étirée n’est pas copiée dans la destination. Si un pinceau est utilisé, il s’agit du pinceau sélectionné dans le contexte de l’appareil de destination. Les coordonnées de destination sont transformées en fonction du contexte du périphérique de destination ; les coordonnées sources sont transformées en fonction du contexte du périphérique source.

Si la destination, la source et les bitmaps de modèle n’ont pas le même format de couleur, StretchBlt convertit les bitmaps source et motif pour qu’elles correspondent aux bitmaps de destination. Les couleurs de premier plan et d'arrière-plan du contexte du périphérique de destination sont utilisées dans la conversion.

Si StretchBlt doit convertir un bitmap monochrome en bitmap de couleur, il définit les bits blancs (1) sur la couleur d'arrière-plan et les bits noirs (0) sur la couleur de premier plan. Pour convertir la couleur en monochrome, il définit les pixels qui correspondent à la couleur d'arrière-plan sur blanc (1) et définit tous les autres pixels sur noir (0). Les couleurs de premier plan et d'arrière-plan du contexte du périphérique coloré sont utilisées.

La fonction StretchBlt n'est pas prise en charge par tous les périphériques. Pour déterminer si un appareil prend en charge StretchBlt, appelez la GetDeviceCaps fonction membre avec l’index RASTERCAPS et vérifiez la valeur de retour de l’indicateur RC_STRETCHBLT .

CDC::StrokeAndFillPath

Ferme toutes les figures ouvertes dans un chemin, dessine le contour du chemin à l’aide du stylet actuel et remplit son intérieur à l’aide du pinceau actuel.

BOOL StrokeAndFillPath();

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Le contexte de l’appareil doit contenir un chemin fermé. La StrokeAndFillPath fonction membre a le même effet que la fermeture de toutes les figures ouvertes dans le chemin, et le remplissage et le remplissage du chemin séparément, sauf que la région remplie ne chevauche pas la région traitée même si le stylet est large.

CDC::StrokePath

Affiche le chemin spécifié à l’aide du stylet actuel.

BOOL StrokePath();

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Le contexte de l’appareil doit contenir un chemin fermé.

CDC::TabbedTextOut

Appelez cette fonction membre pour écrire une chaîne de caractères à l’emplacement spécifié, en développant les onglets aux valeurs spécifiées dans le tableau de positions de taquet de tabulation.

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

Paramètres

x
Spécifie la coordonnée x logique du point de départ de la chaîne.

y
Spécifie la coordonnée y logique du point de départ de la chaîne.

lpszString
Pointe vers la chaîne de caractères à dessiner. Vous pouvez passer un pointeur vers un tableau de caractères ou un CString objet pour ce paramètre.

nCount
Spécifie la longueur de la chaîne pointée par lpszString.

nTabPositions
Spécifie le nombre de valeurs dans le tableau de positions de taquet de tabulation.

lpnTabStopPositions
Pointe vers un tableau contenant les positions de taquet de tabulation (en unités logiques). Les taquets de tabulation doivent être triés dans l’ordre croissant ; la plus petite valeur x doit être le premier élément du tableau.

nTabOrigin
Spécifie la coordonnée x de la position de départ à partir de laquelle les onglets sont développés (en unités logiques).

str
Objet CString qui contient les caractères spécifiés.

Valeur de retour

Dimensions de la chaîne (en unités logiques) en tant qu’objet CSize .

Notes

Le texte est écrit dans la police actuellement sélectionnée. S’il nTabPositions s’agit de 0 et lpnTabStopPositions est NULL, les onglets sont étendus à huit fois la largeur moyenne des caractères.

Si nTabPositions la valeur est 1, les taquets de tabulation sont séparés par la distance spécifiée par la première valeur du lpnTabStopPositions tableau. Si le lpnTabStopPositions tableau contient plusieurs valeurs, un taquet de tabulation est défini pour chaque valeur du tableau, jusqu’au nombre spécifié par nTabPositions. Le nTabOrigin paramètre permet à une application d’appeler la TabbedTextOut fonction plusieurs fois pour une seule ligne. Si l’application appelle la fonction plusieurs fois avec la nTabOrigin valeur définie à chaque fois, la fonction développe tous les onglets par rapport à la position spécifiée par nTabOrigin.

Par défaut, la position actuelle n’est pas utilisée ou mise à jour par la fonction. Si une application doit mettre à jour la position actuelle lorsqu’elle appelle la fonction, l’application peut appeler la SetTextAlign fonction membre avec nFlags la valeur définie TA_UPDATECPsur . Lorsque cet indicateur est défini, Windows ignore les paramètres et y les x paramètres des appels suivants à TabbedTextOut, à l’aide de la position actuelle à la place.

CDC::TextOut

Écrit une chaîne de caractères à l'emplacement spécifié à l'aide de la police sélectionnée.

virtual BOOL TextOut(
    int x,
    int y,
    LPCTSTR lpszString,
    int nCount);

BOOL TextOut(
    int x,
    int y,
    const CString& str);

Paramètres

x
Spécifie la coordonnée x logique du point de départ du texte.

y
Spécifie la coordonnée y logique du point de départ du texte.

lpszString
Pointe vers la chaîne de caractères à ajouter.

nCount
Spécifie le nombre de caractères de la chaîne.

str
Objet CString qui contient les caractères à ajouter.

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

L'origine des caractères se trouve dans l'angle supérieur gauche de la cellule de caractère. Par défaut, la position actuelle n’est pas utilisée ou mise à jour par la fonction.

Si une application doit mettre à jour la position actuelle lorsqu’elle appelle TextOut, l’application peut appeler la SetTextAlign fonction membre avec nFlags la valeur définie TA_UPDATECPsur . Lorsque cet indicateur est défini, Windows ignore les paramètres et y les x paramètres des appels suivants à TextOut, à l’aide de la position actuelle à la place.

Exemple

Consultez l’exemple pour CDC::BeginPath.

CDC::TransparentBlt

Appelez cette fonction membre pour transférer un bloc de bits des données de couleur, qui correspond à un rectangle de pixels du contexte d’appareil source spécifié, dans un contexte d’appareil de destination.

BOOL TransparentBlt(
    int xDest,
    int yDest,
    int nDestWidth,
    int nDestHeight,
    CDC* pSrcDC,
    int xSrc,
    int ySrc,
    int nSrcWidth,
    int nSrcHeight,
    UINT clrTransparent);

Paramètres

xDest
Spécifie la coordonnée x, en unités logiques, du coin supérieur gauche du rectangle de destination.

yDest
Spécifie la coordonnée y, en unités logiques, du coin supérieur gauche du rectangle de destination.

nDestWidth
Spécifie la largeur, en unités logiques, du rectangle de destination.

nDestHeight
Spécifie la hauteur, en unités logiques, du rectangle de destination.

pSrcDC
Pointeur vers le contexte de l’appareil source.

xSrc
Spécifie la coordonnée x, en unités logiques, du rectangle source.

ySrc
Spécifie la coordonnée y, en unités logiques, du rectangle source.

nSrcWidth
Spécifie la largeur, en unités logiques, du rectangle source.

nSrcHeight
Spécifie la hauteur, en unités logiques, du rectangle source.

clrTransparent
Couleur RVB dans la bitmap source à traiter comme transparente.

Valeur de retour

TRUE en cas de réussite ; sinon, FALSE.

Notes

TransparentBlt autorise la transparence ; autrement dit, la couleur RVB indiquée par clrTransparent est rendue transparente pour le transfert.

Pour plus d’informations, consultez TransparentBlt le Kit de développement logiciel (SDK) Windows.

CDC::UpdateColors

Met à jour la zone cliente du contexte de l’appareil en faisant correspondre les couleurs actuelles de la zone cliente à la palette système en pixels par pixels.

void UpdateColors();

Notes

Une fenêtre inactive avec une palette logique réalisée peut appeler UpdateColors une alternative au redessinage de sa zone cliente lorsque la palette système change.

Pour plus d’informations sur l’utilisation de palettes de couleurs, consultez UpdateColors le Kit de développement logiciel (SDK) Windows.

La UpdateColors fonction membre met généralement à jour une zone cliente plus rapidement que de redessiner la zone. Toutefois, étant donné que la fonction effectue la traduction de couleurs en fonction de la couleur de chaque pixel avant la modification de la palette système, chaque appel à cette fonction entraîne une perte de précision de couleur.

CDC::WidenPath

Redéfinit le chemin actuel comme zone qui serait peinte si le chemin d’accès a été tracé à l’aide du stylet actuellement sélectionné dans le contexte de l’appareil.

BOOL WidenPath();

Valeur de retour

Une valeur différente de zéro si la fonction réussit ; sinon, 0.

Notes

Cette fonction réussit uniquement si le stylet actuel est un stylet géométrique créé par la deuxième version de CreatePen la fonction membre, ou si le stylet est créé avec la première version et CreatePen a une largeur, dans les unités d’appareil, de plus de 1. Le contexte de l’appareil doit contenir un chemin fermé. Toutes les courbes Bzier dans le chemin sont converties en séquences de lignes droites environnant les courbes larges. Par conséquent, aucune courbe Bzier ne reste dans le chemin après WidenPath l’appel.

Voir aussi

CObject Classe
Graphique hiérarchique
CPaintDC Classe
CWindowDC Classe
CClientDC Classe
CMetaFileDC Classe