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_hAttribDC Libère , le contexte de l’appareil d’attribut. |
CDC::ReleaseOutputDC |
m_hDC Libè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_hDC le 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
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
SetAbortProc
de .Opérations d’impression qui n’ont pas encore atteint leur premier
NEWFRAME
appel ouNEXTBAND
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 AfxRegisterWndClass
globale .
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 ( y2
x2
, ) 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 NULL
le 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::GetDeviceCaps
membre.
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
, CreateIC
ou 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_HIENGLISH
ou 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_TEXT
la 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 étatsDFCS_BUTTONCHECK
Case à cocherDFCS_BUTTONPUSH
Bouton-poussoirDFCS_BUTTONRADIO
Case d’optionDFCS_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 FermerDFCS_CAPTIONHELP
Bouton AideDFCS_CAPTIONMAX
Bouton AgrandirDFCS_CAPTIONMIN
Bouton RéduireDFCS_CAPTIONRESTORE
Bouton Restaurer
DFC_MENU
DFCS_MENUARROW
Flèche de sous-menuDFCS_MENUBULLET
BalleDFCS_MENUCHECK
Coche
DFC_SCROLL
DFCS_SCROLLCOMBOBOX
Barre de défilement de la zone de liste modifiableDFCS_SCROLLDOWN
Flèche vers le bas de la barre de défilementDFCS_SCROLLLEFT
Flèche gauche de la barre de défilementDFCS_SCROLLRIGHT
Flèche droite de la barre de défilementDFCS_SCROLLSIZEGRIP
Poignée de taille dans le coin inférieur droit de la fenêtreDFCS_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::LoadStandardIcon
ou 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_INTERNAL
DT_EXTERNALLEADING
, DT_NOCLIP
et 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_INTERNAL
DT_EXTERNALLEADING
, DT_NOCLIP
et 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
, x2
et , 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 MakeProcInstance
Windows, 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 parcrColor
. Ce style est identique au remplissage effectué parFloodFill
.FLOODFILLSURFACE
La zone de remplissage est définie par la couleur spécifiée parcrColor
. 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 nFillType
remplissage .
Si nFillType
elle est définie FLOODFILLBORDER
sur , 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 FLOODFILLSURFACE
sur , 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 ExtFloodFill
de 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 etGetBkColor
lesSetBkColor
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 NULL
le 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_UPDATECP
sur . 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 CreateHatchBrush
membres , CreatePatternBrush
et , ou CreateSolidBrush
ré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. FillRect
compare les valeurs du top
bottom
left
rectangle 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 CreateHatchBrush
membres, CreatePatternBrush
ou 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_hAttribDC
du 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 GetDCPenColor
Win32, 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 dwTable
dwOffset
paramè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 GetGraphicsMode
GDI 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 :
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_ISOTROPIC
de 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 NULL
le 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_hDC
et 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_hDC
du 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_hDC
et 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_hDC
du 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 danslpPoints
démarre une figure disjointe.PT_LINETO
Spécifie que le point précédent et le pointlpPoints
correspondant sont les points de terminaison d’une ligne.PT_BEZIERTO
Spécifie que le point correspondant estlpPoints
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 dernierPT_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_ANDSCANS
ou 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_hAttribDC
du 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 :
Appliquez l’opérateur OR au niveau du bit (
|
) à l’indicateur et à ses indicateurs associés, regroupés comme suit :TA_LEFT
,TA_CENTER
etTA_RIGHT
TA_BASELINE
,TA_BOTTOM
etTA_TOP
TA_NOUPDATECP
etTA_UPDATECP
Appliquez l’opérateur AND () au niveau du bit C++ au résultat et à la valeur de retour de
GetTextAlign
.&
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 TextOut
membres de sortie de texte GDI, ExtTextOut
et 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_hAttribDC
l’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 NULL
le 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 NULL
le 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 GetWorldTransform
GDI 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 NULL
le 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 NULL
le 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 NULL
le 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_HIENGLISH
MM_LOMETRIC
ou , la MM_HIMETRIC
conversion 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_TEXT
la 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
, x2
et 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 x
sur , 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 ModifyWorldTransform
GDI 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.PATINVERT
Combine 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
, x2
et y2
(ou par lpRect
). Les points de début et de fin de l’arc sont spécifiés par x3
, y3
et x4
y4
(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_CLOSEFIGURE
Spécifie que la figure est automatiquement fermée une fois que le ouPT_BEZIERTO
lePT_LINETO
type de ce point est terminé. Une ligne est dessinée de ce point vers le point le plus récent ouMoveTo
le plus récentPT_MOVETO
.Cet indicateur est combiné avec le
PT_LINETO
type d’une ligne, ou avec lePT_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::MoveTo
fonctions membres CDC::LineTo
et 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::MoveTo
CDC::LineTo
ou 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 RealizePalette
d’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 RestoreDC
de .
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 NULL
le 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 NULL
le 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 leRGN_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 parpRgn
.RGN_COPY
La nouvelle région de découpage est une copie de la région identifiée parpRgn
. Il s’agit d’une fonctionnalité identique à la première version deSelectClipRgn
. Si la région identifiée parpRgn
estNULL
, 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 parpRgn
.RGN_OR
La nouvelle région de découpage combine la région de découpage actuelle et la région identifiée parpRgn
.RGN_XOR
La nouvelle région de découpage combine la région de découpage actuelle et la région identifiée parpRgn
, 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 CPen
exemple, 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 CreatePalette
membre.
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 surSYSTEM_FONT
la police utilisée par les dialogues et les fenêtres. Utilisez plutôt laSystemParametersInfo
fonction avec leSPI_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
, CBrush
ou 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é parlpRectBounds
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 SetDCPenColor
Win32, 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 SetGraphicsMode
GDI 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_BITMAPORIENTATIONPRESERVED
dwLayout
.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 modeMM_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 etSetViewportExt
lesSetWindowExt
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 etSetViewportExt
lesSetWindowExt
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_HIENGLISH
modes , , MM_LOMETRIC
MM_HIMETRIC
MM_LOENGLISH
MM_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_ISOTROPIC
de 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 SetMapperFlags
gé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 laR2_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 laR2_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 laR2_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 BLACKONWHITE
modes () et WHITEONBLACK
(STRETCH_ANDSCANS
STRETCH_ORSCANS
) sont généralement utilisés pour conserver les pixels de premier plan dans les bitmaps monochromes. Le COLORONCOLOR
mode (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 à laTextOut
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 SetWorldTransform
GDI 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
, SetViewportOrg
et 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
StartPage
remplace 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.MERGECOPY
Combine le modèle et la bitmap source à l’aide de l’opérateur AND booléen.MERGEPAINT
Combine 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.NOTSRCERASE
Inverse 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.PATINVERT
Combine la bitmap de destination avec le modèle à l’aide de l’opérateur XOR booléen.PATPAINT
Combine 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.SRCAND
Combine 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 .SRCINVERT
Combine les pixels de la destination et des bitmaps sources à l’aide de l’opérateur XOR booléen.SRCPAINT
Combine 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 xSrc
paramètres , et les nSrcHeight
ySrc
nSrcWidth
paramètres définissent l’angle supérieur gauche et les dimensions du rectangle source. Les x
paramètres , et les nHeight
nWidth
paramètres y
donnent 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_UPDATECP
sur . 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_UPDATECP
sur . 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