Partager via


CDrawingManager, classe

La CDrawingManager classe implémente des algorithmes de dessin complexes.

Syntaxe

class CDrawingManager : public CObject

Membres

Constructeurs publics

Nom Description
CDrawingManager ::CDrawingManager Construit un objet CDrawingManager.
CDrawingManager::~CDrawingManager Destructeur.

Méthodes publiques

Nom Description
CDrawingManager ::CreateBitmap_32 Crée une bitmap indépendante de l’appareil (DIB) 32 bits dans laquelle les applications peuvent écrire directement.
CDrawingManager ::D rawAlpha Affiche des bitmaps qui ont des pixels transparents ou semi-transparents.
CDrawingManager ::D rawRotated Fait pivoter un contenu de contrôleur de domaine source à l’intérieur du rectangle donné de +/- 90 degrés
CDrawingManager ::D rawEllipse Dessine un ellipse avec les couleurs de remplissage et de bordure fournies.
CDrawingManager ::D rawGradientRing Dessine un anneau et le remplit avec un dégradé de couleur.
CDrawingManager ::D rawLine, CDrawingManager ::D rawLineA Dessine une ligne.
CDrawingManager ::D rawRect Dessine un rectangle avec les couleurs de remplissage et de bordure fournies.
CDrawingManager ::D rawShadow Dessine une ombre pour une zone rectangulaire.
CDrawingManager ::Fill4ColorsGradient Remplit une zone rectangulaire avec deux dégradés de couleur.
CDrawingManager ::FillGradient Remplit une zone rectangulaire avec un dégradé de couleur spécifié.
CDrawingManager ::FillGradient2 Remplit une zone rectangulaire avec un dégradé de couleur spécifié. La direction du changement de couleur du dégradé est également spécifiée.
CDrawingManager ::GrayRect Remplit un rectangle avec une couleur grise spécifiée.
CDrawingManager ::HighlightRect Met en surbrillance une zone rectangulaire.
CDrawingManager ::HLStoRGB_ONE Convertit une couleur d’une représentation HLS en représentation RVB.
CDrawingManager ::HLStoRGB_TWO Convertit une couleur d’une représentation HLS en représentation RVB.
CDrawingManager ::HSVtoRVB Convertit une couleur d’une représentation HSV en représentation RVB.
CDrawingManager ::HuetoRVB Méthode d’assistance qui convertit une valeur de teinte en composant rouge, vert ou bleu.
CDrawingManager ::MirrorRect Retourne une zone rectangulaire.
CDrawingManager ::P ixelAlpha Méthode d’assistance qui détermine la couleur finale d’un pixel semi-transparent.
CDrawingManager ::P repareShadowMask Crée une bitmap qui peut être utilisée comme ombre.
CDrawingManager ::RGBtoHSL Convertit une couleur d’une représentation RVB en représentation HSL.
CDrawingManager ::RGBtoHSV Convertit une couleur d’une représentation RVB en représentation HSV.
CDrawingManager ::SetAlphaPixel Méthode d’assistance qui colore un pixel partiellement transparent dans une bitmap.
CDrawingManager ::SetPixel Méthode d’assistance qui modifie un pixel unique dans une bitmap en couleur spécifiée.
CDrawingManager ::SmartMixColors Combine deux couleurs en fonction d’un ratio pondéré.

Notes

La CDrawingManager classe fournit des fonctions pour dessiner des ombres, des dégradés de couleurs et des rectangles mis en surbrillance. Il effectue également un mélange alpha. Vous pouvez utiliser cette classe pour modifier directement l’interface utilisateur de votre application.

Hiérarchie d'héritage

CObject
CDrawingManager

Spécifications

En-tête : afxdrawmanager.h

CDrawingManager ::CDrawingManager

Construit un objet CDrawingManager .

CDrawingManager(CDC& dc);

Paramètres

dc
[in] Référence à un contexte d’appareil. Utilise CDrawingManager ce contexte pour le dessin.

CDrawingManager ::CreateBitmap_32

Crée une bitmap indépendante de l’appareil (DIB) 32 bits dans laquelle les applications peuvent écrire directement.

static HBITMAP __stdcall CreateBitmap_32(
    const CSize& size,
    void** pBits);

static HBITMAP __stdcall CreateBitmap_32(
    HBITMAP bitmap,
    COLORREF clrTransparent = -1);

Paramètres

size
[in] Paramètre CSize qui indique la taille de la bitmap.

pBits
[out] Pointeur vers un pointeur de données qui reçoit l’emplacement des valeurs de bits de la DIB.

bitmap
Handle vers la bitmap d’origine

clrTransparent
Valeur RVB spécifiant la couleur transparente de la bitmap d’origine.

Valeur de retour

Handle de la bitmap DIB nouvellement créée si cette méthode réussit ; sinon NULL.

Notes

Pour plus d’informations sur la création d’une bitmap DIB, consultez CreateDIBSection.

CDrawingManager ::D rawAlpha

Affiche des bitmaps qui ont des pixels transparents ou semi-transparents.

void DrawAlpha(
    CDC* pDstDC,
    const CRect& rectDst,
    CDC* pSrcDC,
    const CRect& rectSrc);

Paramètres

pDstDC
[in] Pointeur vers le contexte de l’appareil pour la destination.

rectDst
[in] Rectangle de destination.

pSrcDC
[in] Pointeur vers le contexte de l’appareil pour la source.

rectSrc
[in] Rectangle source.

Notes

Cette méthode effectue un mélange alpha pour deux bitmaps. Pour plus d’informations sur la fusion alpha, consultez AlphaBlend dans le Kit de développement logiciel (SDK) Windows.

CDrawingManager ::D rawEllipse

Dessine un ellipse avec les couleurs de remplissage et de bordure fournies.

void DrawEllipse(
    const CRect& rect,
    COLORREF clrFill,
    COLORREF clrLine);

Paramètres

Rect
[in] Rectangle englobant pour l’ellipse.

clrFill
[in] Couleur utilisée par cette méthode pour remplir les points de suspension.

clrLine
[in] Couleur utilisée par cette méthode comme bordure de l’ellipse.

Notes

Cette méthode retourne sans dessiner de points de suspension si l’une ou l’autre couleur est définie sur -1. Elle retourne également sans dessiner de points de suspension si l’une ou l’autre dimension du rectangle englobant est 0.

CDrawingManager ::D rawGradientRing

Dessine un anneau et le remplit avec un dégradé de couleur.

BOOL DrawGradientRing(
    CRect rect,
    COLORREF colorStart,
    COLORREF colorFinish,
    COLORREF colorBorder,
    int nAngle,
    int nWidth,
    COLORREF clrFace = (COLORREF)-1);

Paramètres

Rect
[in] Paramètre CRect qui spécifie la limite de l’anneau de dégradé.

colorStart
[in] Première couleur du dégradé.

colorFinish
[in] Dernière couleur du dégradé.

colorBorder
[in] Couleur de la bordure.

nAngle
[in] Paramètre qui spécifie l’angle initial du dessin dégradé. Cette valeur doit être comprise entre 0 et 360.

nWidth
[in] Largeur de la bordure de l’anneau.

clrFace
[in] Couleur de l’intérieur de l’anneau.

Valeur de retour

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

Notes

Le rectangle défini par rect doit avoir au moins 5 pixels de large et 5 pixels de haut.

CDrawingManager ::D rawLine, CDrawingManager ::D rawLineA

Dessine une ligne.

void DrawLine(
    int x1,
    int y1,
    int x2,
    int y2,
    COLORREF clrLine);

void DrawLineA(
    double x1,
    double y1,
    double x2,
    double y2,
    COLORREF clrLine);

Paramètres

x1
[in] Coordonnée x où commence la ligne.

y1
[in] Coordonnée y où commence la ligne.

x2
[in] Coordonnée x où se termine la ligne.

y2
[in] Coordonnée y où se termine la ligne.

clrLine
[in] Couleur de la ligne.

Notes

Cette méthode échoue si clrLine est égal à -1.

CDrawingManager ::D rawRect

Dessine un rectangle avec les couleurs de remplissage et de bordure fournies.

void DrawRect(
    const CRect& rect,
    COLORREF clrFill,
    COLORREF clrLine);

Paramètres

Rect
[in] Limites du rectangle.

clrFill
[in] Couleur utilisée par cette méthode pour remplir le rectangle.

clrLine
[in] Couleur utilisée par cette méthode pour la bordure du rectangle.

Notes

Cette méthode retourne sans dessiner de rectangle si l’une ou l’autre couleur est définie sur -1. Elle retourne également si l’une ou l’autre dimension du rectangle est 0.

CDrawingManager ::D rawShadow

Dessine une ombre pour une zone rectangulaire.

BOOL DrawShadow(
    CRect rect,
    int nDepth,
    int iMinBrightness = 100,
    int iMaxBrightness = 50,
    CBitmap* pBmpSaveBottom = NULL,
    CBitmap* pBmpSaveRight = NULL,
    COLORREF clrBase = (COLORREF)-1,
    BOOL bRightShadow = TRUE);

Paramètres

Rect
[in] Zone rectangulaire dans votre application. Le gestionnaire de dessin dessine une ombre sous cette zone.

nDepth
[in] Largeur et hauteur de l’ombre.

iMinBrightness
[in] Luminosité minimale de l’ombre.

iMaxBrightness
[in] Luminosité maximale de l’ombre.

pBmpSaveBottom
[in] Pointeur vers une bitmap qui contient l’image pour la partie inférieure de l’ombre.

pBmpSaveRight
[in] Pointeur vers une bitmap qui contient l’image de l’ombre dessinée sur le côté droit du rectangle.

clrBase
[in] Couleur de l’ombre.

bRightShadow
[in] Paramètre booléen qui indique la façon dont l’ombre est dessinée. Si bRightShadow est TRUE, DrawShadow dessine une ombre sur le côté droit du rectangle.

Valeur de retour

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

Notes

Vous pouvez fournir deux bitmaps valides pour les ombres inférieure et droite à l’aide des paramètres pBmpSaveBottom et pBmpSaveRight. Si ces objets CBitmap ont un objet GDI attaché, DrawShadow utilisez ces bitmaps comme ombres. Si les CBitmap paramètres n’ont pas d’objet GDI attaché, DrawShadow dessine l’ombre et attache les bitmaps aux paramètres. Dans les appels à venir, DrawShadowvous pouvez fournir ces bitmaps pour accélérer le processus de dessin. Pour plus d’informations sur la classe et les CBitmap objets GDI, consultez Objets graphiques.

Si l’un de ces paramètres est NULL, DrawShadow dessine automatiquement l’ombre.

Si vous définissez bRightShadow sur FALSE, l’ombre est dessinée sous et à gauche de la zone rectangulaire.

Exemple

L’exemple suivant montre comment utiliser la DrawShadow méthode de la CDrawingManager classe. Cet extrait de code fait partie de l’exemple de démonstration de la feuille de propriétés.

// CDC* pDC
// CRect rectHeader
CDrawingManager dm(*pDC);
// Draw a shadow for a rectangular area.
// second parameter is the depth of the shadow
dm.DrawShadow(rectHeader, 2);

CDrawingManager ::Fill4ColorsGradient

Remplit une zone rectangulaire avec deux dégradés de couleur.

void Fill4ColorsGradient(
    CRect rect,
    COLORREF colorStart1,
    COLORREF colorFinish1,
    COLORREF colorStart2,
    COLORREF colorFinish2,
    BOOL bHorz = TRUE,
    int nPercentage = 50);

Paramètres

Rect
[in] Rectangle à remplir.

colorStart1
[in] Couleur initiale du premier dégradé de couleur.

colorFinish1
[in] Couleur finale du premier dégradé de couleur.

colorStart2
[in] Couleur initiale du deuxième dégradé de couleur.

colorFinish2
[in] Couleur finale pour le deuxième dégradé de couleur.

bHorz
[in] Paramètre booléen qui indique si Fill4ColorsGradient les couleurs sont un dégradé horizontal ou vertical. TRUE indique un dégradé horizontal.

nPercentage
[in] Entier compris entre 0 et 100. Cette valeur indique le pourcentage du rectangle à remplir avec le premier dégradé de couleur.

Notes

Lorsqu’un rectangle est rempli de deux dégradés de couleurs, ils sont situés au-dessus des uns des autres ou en regard des uns des autres, en fonction de la valeur de bHorz. Chaque dégradé de couleur est calculé indépendamment avec la méthode CDrawingManager ::FillGradient.

Cette méthode génère un échec d’assertion si nPercentage est inférieur à 0 ou plus de 100.

CDrawingManager ::FillGradient

Remplit une zone rectangulaire avec le dégradé de couleur spécifié.

void FillGradient(
    CRect rect,
    COLORREF colorStart,
    COLORREF colorFinish,
    BOOL bHorz = TRUE,
    int nStartFlatPercentage = 0,
    int nEndFlatPercentage = 0);

Paramètres

Rect
[in] Zone rectangulaire à remplir.

colorStart
[in] Première couleur du dégradé.

colorFinish
[in] Couleur finale du dégradé.

bHorz
[in] Paramètre booléen qui spécifie s’il convient de FillGradient dessiner un dégradé horizontal ou vertical.

nStartFlatPercentage
[in] Pourcentage du rectangle qui FillGradient se remplit de colorStart avant de commencer le dégradé.

nEndFlatPercentage
[in] Pourcentage du rectangle qui FillGradient se remplit de colorFinish une fois le dégradé terminé.

Exemple

L’exemple suivant montre comment utiliser la FillGradient méthode de la CDrawingManager classe. Cet extrait de code fait partie de l’exemple de démonstration MS Bureau 2007.

// CRect rectScreen
// CDrawingManager dm
dm.FillGradient(rectScreen, RGB(114, 125, 152), RGB(178, 185, 202), TRUE);

CDrawingManager ::FillGradient2

Remplit une zone rectangulaire avec un dégradé de couleur spécifié.

void FillGradient2 (
    CRect rect,
    COLORREF colorStart,
    COLORREF colorFinish,
    int nAngle = 0);

Paramètres

Rect
[in] Zone rectangulaire à remplir.

colorStart
[in] Première couleur du dégradé.

colorFinish
[in] Dernière couleur du dégradé.

nAngle
[in] Entier compris entre 0 et 360. Ce paramètre spécifie la direction du dégradé de couleur.

Notes

Utilisez nAngle pour spécifier la direction du dégradé de couleur. Lorsque vous spécifiez la direction du dégradé de couleurs, vous spécifiez également l’emplacement de démarrage du dégradé de couleurs. La valeur 0 pour nAngle indique que le dégradé commence à partir du haut du rectangle. À mesure que nAngle augmente, l’emplacement de départ du dégradé se déplace dans une direction au sens inverse des aiguilles d’une montre en fonction de l’angle.

Exemple

L’exemple suivant montre comment utiliser la FillGradient2 méthode de la CDrawingManager classe. Cet extrait de code fait partie de l’exemple New Controls.

// CRect rect
// CDC* pDC
CDrawingManager dm(*pDC);
// The last parameter is the angle that specifies the direction of the color gradient.
dm.FillGradient2(rect, RGB(102, 200, 238), RGB(0, 129, 185), 45);

CDrawingManager ::GrayRect

Remplit un rectangle avec une couleur grise spécifiée.

BOOL GrayRect(
    CRect rect,
    int nPercentage = -1,
    COLORREF clrTransparent = (COLORREF)-1,
    COLORREF clrDisabled = (COLORREF)-1);

Paramètres

Rect
[in] Zone rectangulaire à remplir.

nPercentage
[in] Pourcentage de gris souhaité dans le rectangle.

clrTransparent
[in] Couleur transparente.

clrDisabled
[in] Couleur utilisée par cette méthode pour la dé saturation si nPercentage est défini sur -1.

Valeur de retour

TRUE si la méthode a réussi ; sinon FALSE.

Notes

Pour le paramètre nPercentage, une valeur inférieure indique une couleur plus sombre.

La valeur maximale de nPercentage est 200. Une valeur supérieure à 200 ne modifie pas l’apparence du rectangle. Si la valeur est -1, cette méthode utilise clrDisabled pour limiter la saturation du rectangle.

CDrawingManager ::HighlightRect

Met en surbrillance une zone rectangulaire.

BOOL HighlightRect(
    CRect rect,
    int nPercentage = -1,
    COLORREF clrTransparent = (COLORREF)-1,
    int nTolerance = 0,
    COLORREF clrBlend = (COLORREF)-1);

Paramètres

Rect
[in] Zone rectangulaire à mettre en surbrillance.

nPercentage
[in] Pourcentage qui indique la transparence de la mise en surbrillance.

clrTransparent
[in] Couleur transparente.

nTolerance
[in] Entier compris entre 0 et 255 qui indique la tolérance de couleur.

clrBlend
[in] Couleur de base pour la fusion.

Valeur de retour

TRUE si la méthode réussit ; sinon FALSE.

Notes

Si nPercentage est compris entre 0 et 99, HighlightRect utilise l’algorithme de fusion alpha. Pour plus d’informations sur le mélange alpha, consultez Lignes et remplissages de fusion alpha. Si nPercentage est -1, cette méthode utilise le niveau de surbrillance par défaut. Si nPercentage est 100, cette méthode ne fait rien et retourne TRUE.

La méthode utilise le paramètre nTolerance pour déterminer s’il faut mettre en surbrillance la zone rectangulaire. Pour mettre en surbrillance le rectangle, la différence entre la couleur d’arrière-plan de votre application et clrTransparent doit être inférieure à nTolerance dans chaque composant de couleur (rouge, vert et bleu).

CDrawingManager ::HLStoRGB_ONE

Convertit une couleur d’une représentation HLS en représentation RVB.

static COLORREF __stdcall HLStoRGB_ONE(
    double H,
    double L,
    double S);

Paramètres

H
[in] Nombre compris entre 0 et 1 qui représente la teinte de la couleur.

L
[in] Nombre compris entre 0 et 1 qui indique la luminosité de la couleur.

S
[in] Nombre compris entre 0 et 1 qui indique la saturation de la couleur.

Valeur de retour

Représentation RVB de la couleur HLS fournie.

Notes

Une couleur peut être représentée en tant que HSV (teinte, saturation et valeur), HSL (teinte, saturation et luminosité) ou RVB (rouge, vert et bleu). Pour plus d’informations sur les différentes représentations de couleur, consultez Couleur.

Cette méthode et la CDrawingManager::HLStoRGB_TWO méthode effectuent la même opération, mais nécessitent des valeurs différentes pour le paramètre H . Dans cette méthode, H est un pourcentage du cercle. Dans la CDrawingManager::HLStoRGB_TWO méthode, H est une valeur de degré comprise entre 0 et 360, qui représente tous deux rouge. Par exemple, avec HLStoRGB_ONE, une valeur de 0,25 pour H équivaut à une valeur de 90 avec HLStoRGB_TWO.

CDrawingManager ::HLStoRGB_TWO

Convertit une couleur d’une représentation HLS en représentation RVB.

static COLORREF __stdcall HLStoRGB_TWO(
    double H,
    double L,
    double S);

Paramètres

H
[in] Nombre compris entre 0 et 360 qui représente la teinte de la couleur.

L
[in] Nombre compris entre 0 et 1 qui indique la luminosité de la couleur.

S
[in] Nombre compris entre 0 et 1 qui indique la saturation de la couleur.

Valeur de retour

Représentation RVB de la couleur HLS fournie.

Notes

Une couleur peut être représentée en tant que HSV (teinte, saturation et valeur), HSL (teinte, saturation et luminosité) ou RVB (rouge, vert et bleu). Pour plus d’informations sur les différentes représentations de couleur, consultez Couleur.

Cette méthode et la méthode CDrawingManager ::HLStoRGB_ONE effectuent la même opération, mais nécessitent des valeurs différentes pour le paramètre H . Dans cette méthode, H est une valeur de degré comprise entre 0 et 360, qui représente tous deux rouge. Dans la méthode CDrawingManager ::HLStoRGB_ONE , H est un pourcentage du cercle. Par exemple, avec HLStoRGB_ONE, une valeur de 0,25 pour H équivaut à une valeur de 90 avec HLStoRGB_TWO.

CDrawingManager ::HSVtoRVB

Convertit une couleur d’une représentation HSV en représentation RVB.

static COLORREF __stdcall HSVtoRGB(
    double H,
    double S,
    double V);

Paramètres

H
[in] Nombre compris entre 0 et 360 qui indique la teinte de la couleur.

S
[in] Nombre compris entre 0 et 1 qui indique la saturation de la couleur.

V
[in] Nombre compris entre 0 et 1 qui indique la valeur de la couleur.

Valeur de retour

Représentation RVB de la couleur HSV fournie.

Notes

Une couleur peut être représentée en tant que HSV (teinte, saturation et valeur), HSL (teinte, saturation et luminosité) ou RVB (rouge, vert et bleu). Pour plus d’informations sur les différentes représentations de couleur, consultez Couleur.

CDrawingManager ::HuetoRVB

Convertit une valeur de teinte en composant rouge, vert ou bleu.

static double __stdcall HuetoRGB(
    double m1,
    double m2,
    double h);

static BYTE __stdcall HueToRGB(
    float rm1,
    float rm2,
    float rh);

Paramètres

m1
[in] Voir les remarques.

m2
[in] Voir les remarques.

h
[in] Voir les remarques.

rm1
[in] Voir les remarques.

rm2
[in] Voir les remarques.

rh
[in] Voir les remarques.

Valeur de retour

Composant rouge, vert ou bleu pour la teinte fournie.

Notes

Cette méthode est une méthode d’assistance que la CDrawingManager classe utilise pour calculer les composants rouges, verts et bleus individuels d’une couleur dans une représentation HSV ou HSL. Cette méthode n’est pas conçue pour être appelée directement par le programmeur. Les paramètres d’entrée sont des valeurs qui dépendent de l’algorithme de conversion.

Pour convertir une couleur HSV ou HSL en représentation RVB, appelez l’une des méthodes suivantes :

CDrawingManager ::MirrorRect

Retourne une zone rectangulaire.

void MirrorRect(
    CRect rect,
    BOOL bHorz = TRUE);

Paramètres

Rect
[in] Rectangle englobant de la zone à retourner.

bHorz
[in] Paramètre booléen qui indique si le rectangle retourne horizontalement ou verticalement.

Notes

Cette méthode peut retourner n’importe quelle zone du contexte de l’appareil appartenant à la CDrawingManager classe. Si bHorz a la valeur TRUE, cette méthode retourne la zone horizontalement. Sinon, il retourne la zone verticalement.

CDrawingManager ::P ixelAlpha

Calcule la couleur finale d’un pixel semi-transparent.

static COLORREF __stdcall PixelAlpha(
    COLORREF srcPixel,
    int percent);

static COLORREF __stdcall PixelAlpha(
    COLORREF srcPixel,
    double percentR,
    double percentG,
    double percentB);

static COLORREF __stdcall PixelAlpha(
    COLORREF srcPixel,
    COLORREF dstPixel,
    int percent);

Paramètres

srcPixel
[in] Couleur initiale du pixel.

pourcentage
[in] Nombre compris entre 0 et 100 qui représente le pourcentage de transparence. La valeur 100 indique que la couleur initiale est complètement transparente.

percentR
[in] Nombre compris entre 0 et 100 qui représente le pourcentage de transparence pour le composant rouge.

percentG
[in] Nombre compris entre 0 et 100 qui représente le pourcentage de transparence pour le composant vert.

percentB
[in] Nombre compris entre 0 et 100 qui représente le pourcentage de transparence pour le composant bleu.

dstPixel
[in] Couleur de base du pixel.

Valeur de retour

Couleur finale du pixel semi-transparent.

Notes

Il s’agit d’une classe d’assistance pour la coloration des bitmaps semi-transparentes et n’est pas conçue pour être appelée directement par le programmeur.

Lorsque vous utilisez la version de la méthode qui a dstPixel, la couleur finale est une combinaison de dstPixel et srcPixel. La couleur srcPixel est la couleur partiellement transparente sur la couleur de base de dstPixel.

CDrawingManager ::P repareShadowMask

Crée une bitmap qui peut être utilisée comme ombre.

static HBITMAP __stdcall PrepareShadowMask (
    int nDepth,
    COLORREF clrBase,
    int iMinBrightness = 0,
    int iMaxBrightness = 100);

Paramètres

nDepth
[in] Largeur et hauteur de l’ombre.

clrBase
[in] Couleur de l’ombre.

iMinBrightness
[in] Luminosité minimale de l’ombre.

iMaxBrightness
[in] Luminosité maximale de l’ombre.

Valeur de retour

Handle de l’image bitmap créée si cette méthode réussit ; sinon NULL.

Notes

Si nDepth est défini sur 0, cette méthode quitte et retourne NULL. Si nDepth est inférieur à 3, la largeur et la hauteur de l’ombre sont définies sur 3 pixels.

CDrawingManager ::RGBtoHSL

Convertit une couleur d’une représentation rouge, verte et bleue (RVB) en représentation teinte, saturation et légèreté (HSL).

static void __stdcall RGBtoHSL(
    COLORREF rgb,
    double* H,
    double* S,
    double* L);

Paramètres

Rvb
[in] Couleur dans les valeurs RVB.

H
[out] Pointeur vers un double où la méthode stocke la teinte de la couleur.

S
[out] Pointeur vers un double où la méthode stocke la saturation de la couleur.

L
[out] Pointeur vers un double où la méthode stocke la légèreté de la couleur.

Notes

Une couleur peut être représentée en tant que HSV (teinte, saturation et valeur), HSL (teinte, saturation et luminosité) ou RVB (rouge, vert et bleu). Pour plus d’informations sur les différentes représentations de couleur, consultez Couleur.

La valeur retournée pour H est représentée sous la forme d’une fraction comprise entre 0 et 1, où 0 et 1 représentent rouge. Les valeurs retournées pour S et L sont des nombres compris entre 0 et 1.

CDrawingManager ::RGBtoHSV

Convertit une couleur d’une représentation RVB en représentation HSV.

static void __stdcall RGBtoHSV(
    COLORREF rgb,
    double* H,
    double* S,
    double* V);

Paramètres

Rvb
[in] Couleur à convertir dans une représentation RVB.

H
[out] Pointeur vers un double où cette méthode stocke la teinte résultante pour la couleur.

S
[out] Pointeur vers un double où cette méthode stocke la saturation résultante pour la couleur.

V
[out] Pointeur vers un double où cette méthode stocke la valeur résultante pour la couleur.

Notes

Une couleur peut être représentée en tant que HSV (teinte, saturation et valeur), HSL (teinte, saturation et luminosité) ou RVB (rouge, vert et bleu). Pour plus d’informations sur les différentes représentations de couleur, consultez Couleur.

La valeur retournée pour H est un nombre compris entre 0 et 360, où 0 et 360 indiquent rouge. Les valeurs de retour pour S et V sont des nombres compris entre 0 et 1.

CDrawingManager ::SetAlphaPixel

Colore un pixel transparent dans une bitmap.

static void __stdcall SetAlphaPixel(
    COLORREF* pBits,
    CRect rect,
    int x,
    int y,
    int percent,
    int iShadowSize,
    COLORREF clrBase = (COLORREF)-1,
    BOOL bIsRight = TRUE);

Paramètres

pBits
[in] Pointeur vers les valeurs de bits pour la bitmap.

Rect
[in] Zone rectangulaire dans votre application. Le gestionnaire de dessin dessine une ombre sous et à droite de cette zone.

x
[in] Coordonnée horizontale du pixel à colorer.

y
[in] Coordonnée verticale du pixel à colorer.

pourcentage
[in] Pourcentage de transparence.

iShadowSize
[in] Largeur et hauteur de l’ombre.

clrBase
[in] Couleur de l’ombre.

bIsRight
[in] Paramètre booléen qui indique le pixel à colorier. Pour plus d'informations, consultez la section Notes.

Notes

Cette méthode est une méthode d’assistance utilisée par la méthode CDrawingManager ::D rawShadow . Nous vous recommandons de dessiner une ombre, d’appeler CDrawingManager::DrawShadow à la place.

Si bIsRight a la valeur TRUE, le pixel à colorier est mesuré x pixels à partir du bord droit de rect. S’il est FAUX, le pixel à colorier est mesuré x pixels à partir du bord gauche de rect.

CDrawingManager ::SetPixel

Modifie un pixel unique dans une bitmap en couleur spécifiée.

static void __stdcall SetPixel(
    COLORREF* pBits,
    int cx,
    int cy,
    int x,
    int y,
    COLORREF color);

Paramètres

pBits
[in] Pointeur vers les valeurs de bits de la bitmap.

Cx
[in] Largeur totale de la bitmap.

Cy
[in] Hauteur totale de la bitmap.

x
[in] Coordonnée x du pixel dans la bitmap à modifier.

y
[in] Coordonnée y du pixel dans la bitmap à modifier.

color
[in] Nouvelle couleur pour le pixel identifié par les coordonnées fournies.

CDrawingManager ::SmartMixColors

Combine deux couleurs en fonction d’un ratio pondéré.

static COLORREF __stdcall SmartMixColors(
    COLORREF color1,
    COLORREF color2,
    double dblLumRatio = 1.,
    int k1 = 1,
    int k2 = 1);

Paramètres

color1
[in] Première couleur à mélanger.

color2
[in] Deuxième couleur à mélanger.

dblLumRatio
[in] Rapport de luminosité de la nouvelle couleur. SmartMixColors multiplie la luminosité de la couleur mixte par ce rapport avant de déterminer une couleur finale.

k1
[in] Rapport pondéré pour la première couleur.

k2
[in] Rapport pondéré pour la deuxième couleur.

Valeur de retour

Couleur qui représente un mélange pondéré des couleurs fournies.

Notes

Cette méthode échoue avec une erreur si k1 ou k2 est inférieur à zéro. Si ces deux paramètres sont définis sur 0, la méthode retourne RGB(0, 0, 0).

Le ratio pondéré est calculé avec la formule suivante : (color1 * k1 + color2 * k2)/(k1 + k2). Une fois le ratio pondéré déterminé, la méthode calcule la luminosité de la couleur mixte. Il multiplie ensuite la luminosité par dblLumRatio. Si la valeur est supérieure à 1,0, la méthode définit la luminosité de la couleur mixte sur la nouvelle valeur. Sinon, la luminosité est définie sur 1,0.

CDrawingManager ::D rawRotated

Fait pivoter un contenu de contrôleur de domaine source à l’intérieur du rectangle donné de 90 degrés.

void DrawRotated(
    CRect rectDest,
    CDC& dcSrc,
    BOOL bClockWise);

Paramètres

rectDest
Rectangle de destination.

dcSrc
Contexte de l’appareil source.

bClockWise
TRUE indique la rotation +90 degrés ; FALSE indique la rotation de -90 degrés.

Notes

Voir aussi

Graphique hiérarchique
Classes