Classe CDrawingManager

La CDrawingManager classe implementa algoritmi di disegno complessi.

Sintassi

class CDrawingManager : public CObject

Membri

Costruttori pubblici

Nome Descrizione
CDrawingManager::CDrawingManager Costruisce un oggetto CDrawingManager.
CDrawingManager::~CDrawingManager Distruttore.

Metodi pubblici

Nome Descrizione
CDrawingManager::CreateBitmap_32 Crea una bitmap indipendente dal dispositivo (DIB) a 32 bit in cui le applicazioni possono scrivere direttamente.
CDrawingManager::D rawAlpha Visualizza bitmap con pixel trasparenti o semitrasparenti.
CDrawingManager::D rawRotated Ruota il contenuto di un controller di dominio di origine all'interno del rettangolo specificato di +/- 90 gradi
CDrawingManager::D rawEllipse Disegna un'ellisse con i colori di riempimento e bordo forniti.
CDrawingManager::D rawGradientRing Disegna un anello e lo riempie con una sfumatura di colore.
CDrawingManager::D rawLine, CDrawingManager::D rawLineA Disegna una linea.
CDrawingManager::D rawRect Disegna un rettangolo con i colori di riempimento e bordo forniti.
CDrawingManager::D rawShadow Disegna un'ombreggiatura per un'area rettangolare.
CDrawingManager::Fill4ColorsGradient Riempie un'area rettangolare con due sfumature di colore.
CDrawingManager::FillGradient Riempie un'area rettangolare con una sfumatura di colore specificata.
CDrawingManager::FillGradient2 Riempie un'area rettangolare con una sfumatura di colore specificata. Viene specificata anche la direzione della modifica del colore della sfumatura.
CDrawingManager::GrayRect Riempie un rettangolo con un colore grigio specificato.
CDrawingManager::HighlightRect Evidenzia un'area rettangolare.
CDrawingManager::HLStoRGB_ONE Converte un colore da una rappresentazione HLS a una rappresentazione RGB.
CDrawingManager::HLStoRGB_TWO Converte un colore da una rappresentazione HLS a una rappresentazione RGB.
CDrawingManager::HSVtoRGB Converte un colore da una rappresentazione HSV a una rappresentazione RGB.
CDrawingManager::HuetoRGB Metodo helper che converte un valore di tonalità in un componente rosso, verde o blu.
CDrawingManager::MirrorRect Capovolge un'area rettangolare.
CDrawingManager::P ixelAlpha Metodo helper che determina il colore finale per un pixel semitrasparente.
CDrawingManager::P repareShadowMask Crea una bitmap che può essere usata come ombreggiatura.
CDrawingManager::RGBtoHSL Converte un colore da una rappresentazione RGB a una rappresentazione HSL.
CDrawingManager::RGBtoHSV Converte un colore da una rappresentazione RGB a una rappresentazione HSV.
CDrawingManager::SetAlphaPixel Metodo helper che colora un pixel parzialmente trasparente in una bitmap.
CDrawingManager::SetPixel Metodo helper che modifica un singolo pixel in una bitmap con il colore specificato.
CDrawingManager::SmartMixColors Combina due colori in base a un rapporto ponderato.

Osservazioni:

La CDrawingManager classe fornisce funzioni per disegnare ombreggiature, sfumature di colore e rettangoli evidenziati. Esegue anche la fusione alfa. È possibile usare questa classe per modificare direttamente l'interfaccia utente dell'applicazione.

Gerarchia di ereditarietà

CObject
CDrawingManager

Requisiti

Intestazione: afxdrawmanager.h

CDrawingManager::CDrawingManager

Costruisce un oggetto CDrawingManager .

CDrawingManager(CDC& dc);

Parametri

dc
[in] Riferimento a un contesto di dispositivo. CDrawingManager Utilizza questo contesto per il disegno.

CDrawingManager::CreateBitmap_32

Crea una bitmap indipendente dal dispositivo (DIB) a 32 bit in cui le applicazioni possono scrivere direttamente.

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

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

Parametri

size
[in] Parametro CSize che indica le dimensioni della bitmap.

pBit
[out] Puntatore a un puntatore dati che riceve la posizione dei valori di bit di DIB.

bitmap
Handle per la bitmap originale

clrTransparent
Valore RGB che specifica il colore trasparente della bitmap originale.

Valore restituito

Handle per la bitmap DIB appena creata se questo metodo ha esito positivo; in caso contrario NULL.

Osservazioni:

Per altre informazioni su come creare una bitmap DIB, vedere CreateDIBSection.

CDrawingManager::D rawAlpha

Visualizza bitmap con pixel trasparenti o semitrasparenti.

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

Parametri

pDstDC
[in] Puntatore al contesto di dispositivo per la destinazione.

rectDst
[in] Rettangolo di destinazione.

pSrcDC
[in] Puntatore al contesto di dispositivo per l'origine.

rectSrc
[in] Rettangolo di origine.

Osservazioni:

Questo metodo esegue la fusione alfa per due bitmap. Per altre informazioni sulla fusione alfa, vedere AlphaBlend in Windows SDK.

CDrawingManager::D rawEllipse

Disegna un'ellisse con i colori di riempimento e bordo forniti.

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

Parametri

rect
[in] Rettangolo di delimitazione per l'ellisse.

clrFill
[in] Colore utilizzato da questo metodo per riempire l'ellisse.

clrLine
[in] Colore utilizzato da questo metodo come bordo dell'ellisse.

Osservazioni:

Questo metodo restituisce senza disegnare un'ellisse se uno dei due colori è impostato su -1. Restituisce anche senza disegnare un'ellisse se una delle dimensioni del rettangolo di delimitazione è 0.

CDrawingManager::D rawGradientRing

Disegna un anello e lo riempie con una sfumatura di colore.

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

Parametri

rect
[in] Parametro CRect che specifica il limite per l'anello sfumato.

colorStart
[in] Primo colore per la sfumatura.

colorFinish
[in] Ultimo colore per la sfumatura.

colorBorder
[in] Colore del bordo.

nAngle
[in] Parametro che specifica l'angolo iniziale del disegno sfumato. Questo valore deve essere compreso tra 0 e 360.

nWidth
[in] Larghezza del bordo per l'anello.

clrFace
[in] Colore dell'interno dell'anello.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Il rettangolo definito da rect deve avere una larghezza di almeno 5 pixel e un'altezza di 5 pixel.

CDrawingManager::D rawLine, CDrawingManager::D rawLineA

Disegna una linea.

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

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

Parametri

x1
[in] Coordinata x in cui inizia la riga.

y1
[in] Coordinata y in cui inizia la linea.

x2
[in] Coordinata x in cui termina la linea.

y2
[in] Coordinata y in cui termina la linea.

clrLine
[in] Colore della linea.

Osservazioni:

Questo metodo ha esito negativo se clrLine è uguale a -1.

CDrawingManager::D rawRect

Disegna un rettangolo con i colori di riempimento e bordo forniti.

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

Parametri

rect
[in] Limiti per il rettangolo.

clrFill
[in] Colore utilizzato da questo metodo per riempire il rettangolo.

clrLine
[in] Colore utilizzato da questo metodo per il bordo del rettangolo.

Osservazioni:

Questo metodo restituisce senza disegnare un rettangolo se uno dei due colori è impostato su -1. Restituisce anche se una delle dimensioni del rettangolo è 0.

CDrawingManager::D rawShadow

Disegna un'ombreggiatura per un'area rettangolare.

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

Parametri

rect
[in] Area rettangolare nell'applicazione. Il gestore disegno disegnerà un'ombreggiatura sotto questa area.

nDepth
[in] Larghezza e altezza dell'ombreggiatura.

iMinBrightness
[in] Luminosità minima dell'ombreggiatura.

iMaxBrightness
[in] Luminosità massima dell'ombreggiatura.

pBmpSaveBottom
[in] Puntatore a una bitmap che contiene l'immagine per la parte inferiore dell'ombreggiatura.

pBmpSaveRight
[in] Puntatore a una bitmap che contiene l'immagine per l'ombreggiatura disegnata sul lato destro del rettangolo.

clrBase
[in] Colore dell'ombreggiatura.

bRightShadow
[in] Parametro booleano che indica come viene disegnata l'ombreggiatura. Se bRightShadow è TRUE, DrawShadow disegna un'ombreggiatura sul lato destro del rettangolo.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

È possibile fornire due bitmap valide per le ombreggiature in basso e destro usando i parametri pBmpSaveBottom e pBmpSaveRight. Se questi oggetti CBitmap hanno un oggetto GDI associato, DrawShadow userà tali bitmap come ombreggiature. Se i CBitmap parametri non hanno un oggetto GDI associato, DrawShadow disegna l'ombreggiatura e allega le bitmap ai parametri. Nelle chiamate future a DrawShadow, è possibile fornire queste bitmap per velocizzare il processo di disegno. Per altre informazioni sulla classe e sugli CBitmap oggetti GDI, vedere Oggetti grafici.

Se uno di questi parametri è NULL, DrawShadow disegnerà automaticamente l'ombreggiatura.

Se si imposta bRightShadow su FALSE, l'ombreggiatura verrà disegnata sotto e a sinistra dell'area rettangolare.

Esempio

Nell'esempio seguente viene illustrato come usare il DrawShadow metodo della CDrawingManager classe . Questo frammento di codice fa parte dell'esempio demo di foglio prop.

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

Riempie un'area rettangolare con due sfumature di colore.

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

Parametri

rect
[in] Rettangolo da riempire.

colorStart1
[in] Colore iniziale per la prima sfumatura di colore.

colorFinish1
[in] Colore finale per la prima sfumatura di colore.

colorStart2
[in] Colore iniziale per la seconda sfumatura di colore.

colorFinish2
[in] Colore finale per la seconda sfumatura di colore.

bHorz
[in] Parametro booleano che indica se Fill4ColorsGradient colora una sfumatura orizzontale o verticale. TRUE indica una sfumatura orizzontale.

nPercentage
[in] Intero compreso tra 0 e 100. Questo valore indica la percentuale del rettangolo da riempire con la prima sfumatura di colore.

Osservazioni:

Quando un rettangolo viene riempito con due sfumature di colore, si trovano l'una sopra l'altra o accanto l'una all'altra, a seconda del valore di bHorz. Ogni sfumatura di colore viene calcolata in modo indipendente con il metodo CDrawingManager::FillGradient.

Questo metodo genera un errore di asserzione se nPercentage è minore di 0 o più di 100.

CDrawingManager::FillGradient

Riempie un'area rettangolare con la sfumatura di colore specificata.

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

Parametri

rect
[in] Area rettangolare da riempire.

colorStart
[in] Primo colore per la sfumatura.

colorFinish
[in] Colore finale per la sfumatura.

bHorz
[in] Parametro booleano che specifica se FillGradient disegnare una sfumatura orizzontale o verticale.

nStartFlatPercentage
[in] Percentuale del rettangolo che FillGradient riempie con colorStart prima di avviare la sfumatura.

nEndFlatPercentage
[in] Percentuale del rettangolo che FillGradient riempie con colorFinish al termine della sfumatura.

Esempio

Nell'esempio seguente viene illustrato come usare il FillGradient metodo della CDrawingManager classe . Questo frammento di codice fa parte dell'esempio demo di MS Office 2007.

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

CDrawingManager::FillGradient2

Riempie un'area rettangolare con una sfumatura di colore specificata.

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

Parametri

rect
[in] Area rettangolare da riempire.

colorStart
[in] Primo colore della sfumatura.

colorFinish
[in] Ultimo colore della sfumatura.

nAngle
[in] Intero compreso tra 0 e 360. Questo parametro specifica la direzione della sfumatura di colore.

Osservazioni:

Usare nAngle per specificare la direzione della sfumatura di colore. Quando si specifica la direzione della sfumatura di colore, si specifica anche dove inizia la sfumatura di colore. Il valore 0 per nAngle indica che la sfumatura inizia dalla parte superiore del rettangolo. Man mano che nAngle aumenta, la posizione iniziale per la sfumatura viene spostata in senso antiorario in base all'angolo.

Esempio

Nell'esempio seguente viene illustrato come usare il FillGradient2 metodo della CDrawingManager classe . Questo frammento di codice fa parte dell'esempio 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

Riempie un rettangolo con un colore grigio specificato.

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

Parametri

rect
[in] Area rettangolare da riempire.

nPercentage
[in] Percentuale di grigio desiderata nel rettangolo.

clrTransparent
[in] Colore trasparente.

clrDisabled
[in] Colore utilizzato da questo metodo per la deaturazione se nPercentage è impostato su -1.

Valore restituito

TRUE se il metodo ha avuto esito positivo; in caso contrario FALSE.

Osservazioni:

Per il parametro nPercentage, un valore inferiore indica un colore più scuro.

Il valore massimo per nPercentage è 200. Un valore maggiore di 200 non modifica l'aspetto del rettangolo. Se il valore è -1, questo metodo usa clrDisabled per limitare la saturazione del rettangolo.

CDrawingManager::HighlightRect

Evidenzia un'area rettangolare.

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

Parametri

rect
[in] Area rettangolare da evidenziare.

nPercentage
[in] Percentuale che indica come deve essere trasparente l'evidenziazione.

clrTransparent
[in] Colore trasparente.

nTolerance
[in] Intero compreso tra 0 e 255 che indica la tolleranza di colore.

clrBlend
[in] Colore di base per la fusione.

Valore restituito

TRUE se il metodo ha esito positivo; in caso contrario FALSE.

Osservazioni:

Se nPercentage è compreso tra 0 e 99, HighlightRect usa l'algoritmo di fusione alfa. Per altre informazioni sulla fusione alfa, vedere Linee di fusione alfa e riempimenti. Se nPercentage è -1, questo metodo usa il livello di evidenziazione predefinito. Se nPercentage è 100, questo metodo non esegue alcuna operazione e restituisce TRUE.

Il metodo usa il parametro nTolerance per determinare se evidenziare l'area rettangolare. Per evidenziare il rettangolo, la differenza tra il colore di sfondo dell'applicazione e clrTransparent deve essere minore di nTolerance in ogni componente di colore (rosso, verde e blu).

CDrawingManager::HLStoRGB_ONE

Converte un colore da una rappresentazione HLS a una rappresentazione RGB.

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

Parametri

H
[in] Numero compreso tra 0 e 1 che rappresenta la tonalità del colore.

L
[in] Numero compreso tra 0 e 1 che indica la luminosità del colore.

S
[in] Numero compreso tra 0 e 1 che indica la saturazione per il colore.

Valore restituito

Rappresentazione RGB del colore HLS fornito.

Osservazioni:

Un colore può essere rappresentato come HSV (tonalità, saturazione e valore), HSL (tonalità, saturazione e luminosità) o RGB (rosso, verde e blu). Per altre informazioni sulle diverse rappresentazioni di colore, vedere Color.

Questo metodo e il CDrawingManager::HLStoRGB_TWO metodo eseguono la stessa operazione, ma richiedono valori diversi per il parametro H . In questo metodo H è una percentuale del cerchio. CDrawingManager::HLStoRGB_TWO Nel metodo H è un valore di grado compreso tra 0 e 360, che entrambi rappresentano il rosso. Ad esempio, con HLStoRGB_ONE, il valore 0,25 per H equivale a un valore pari a 90 con HLStoRGB_TWO.

CDrawingManager::HLStoRGB_TWO

Converte un colore da una rappresentazione HLS a una rappresentazione RGB.

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

Parametri

H
[in] Numero compreso tra 0 e 360 che rappresenta la tonalità del colore.

L
[in] Numero compreso tra 0 e 1 che indica la luminosità del colore.

S
[in] Numero compreso tra 0 e 1 che indica la saturazione per il colore.

Valore restituito

Rappresentazione RGB del colore HLS fornito.

Osservazioni:

Un colore può essere rappresentato come HSV (tonalità, saturazione e valore), HSL (tonalità, saturazione e luminosità) o RGB (rosso, verde e blu). Per altre informazioni sulle diverse rappresentazioni di colore, vedere Color.

Questo metodo e il metodo CDrawingManager::HLStoRGB_ONE eseguono la stessa operazione, ma richiedono valori diversi per il parametro H . In questo metodo, H è un valore di grado compreso tra 0 e 360, che entrambi rappresentano il rosso. Nel metodo CDrawingManager::HLStoRGB_ONE H è una percentuale del cerchio. Ad esempio, con HLStoRGB_ONE, il valore 0,25 per H equivale a un valore pari a 90 con HLStoRGB_TWO.

CDrawingManager::HSVtoRGB

Converte un colore da una rappresentazione HSV a una rappresentazione RGB.

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

Parametri

H
[in] Numero compreso tra 0 e 360 che indica la tonalità del colore.

S
[in] Numero compreso tra 0 e 1 che indica la saturazione per il colore.

V
[in] Numero compreso tra 0 e 1 che indica il valore per il colore.

Valore restituito

Rappresentazione RGB del colore HSV fornito.

Osservazioni:

Un colore può essere rappresentato come HSV (tonalità, saturazione e valore), HSL (tonalità, saturazione e luminosità) o RGB (rosso, verde e blu). Per altre informazioni sulle diverse rappresentazioni di colore, vedere Color.

CDrawingManager::HuetoRGB

Converte un valore di tonalità in un componente rosso, verde o blu.

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

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

Parametri

m1
[in] Vedere la sezione Osservazioni.

m2
[in] Vedere la sezione Osservazioni.

h
[in] Vedere la sezione Osservazioni.

rm1
[in] Vedere la sezione Osservazioni.

rm2
[in] Vedere la sezione Osservazioni.

Rh
[in] Vedere la sezione Osservazioni.

Valore restituito

Singolo componente rosso, verde o blu per la tonalità specificata.

Osservazioni:

Questo metodo è un metodo helper usato dalla CDrawingManager classe per calcolare i singoli componenti rosso, verde e blu di un colore in una rappresentazione HSV o HSL. Questo metodo non è progettato per essere chiamato direttamente dal programmatore. I parametri di input sono valori che dipendono dall'algoritmo di conversione.

Per convertire un colore HSV o HSL in una rappresentazione RGB, chiamare uno dei metodi seguenti:

CDrawingManager::MirrorRect

Capovolge un'area rettangolare.

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

Parametri

rect
[in] Rettangolo di delimitazione dell'area da capovolgere.

bHorz
[in] Parametro booleano che indica se il rettangolo si capovolge orizzontalmente o verticalmente.

Osservazioni:

Questo metodo può capovolgere qualsiasi area del contesto di dispositivo di proprietà della CDrawingManager classe . Se bHorz è impostato su TRUE, questo metodo capovolge l'area orizzontalmente. In caso contrario, capovolge l'area verticalmente.

CDrawingManager::P ixelAlpha

Calcola il colore finale per un pixel semitrasparente.

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

Parametri

srcPixel
[in] Colore iniziale per il pixel.

percento
[in] Numero compreso tra 0 e 100 che rappresenta la percentuale di trasparenza. Il valore 100 indica che il colore iniziale è completamente trasparente.

percentR
[in] Numero compreso tra 0 e 100 che rappresenta la percentuale di trasparenza per il componente rosso.

percentG
[in] Numero compreso tra 0 e 100 che rappresenta la percentuale di trasparenza per il componente verde.

percentB
[in] Numero compreso tra 0 e 100 che rappresenta la percentuale di trasparenza per il componente blu.

dstPixel
[in] Colore di base per il pixel.

Valore restituito

Colore finale per il pixel semitrasparente.

Osservazioni:

Si tratta di una classe helper per la colorazione di bitmap semitrasparenti e non è progettata per essere chiamata direttamente dal programmatore.

Quando usi la versione del metodo con dstPixel, il colore finale è una combinazione di dstPixel e srcPixel. Il colore srcPixel è il colore parzialmente trasparente rispetto al colore di base di dstPixel.

CDrawingManager::P repareShadowMask

Crea una bitmap che può essere usata come ombreggiatura.

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

Parametri

nDepth
[in] Larghezza e altezza dell'ombreggiatura.

clrBase
[in] Colore dell'ombreggiatura.

iMinBrightness
[in] Luminosità minima dell'ombreggiatura.

iMaxBrightness
[in] Luminosità massima dell'ombreggiatura.

Valore restituito

Handle per la bitmap creata se questo metodo ha esito positivo; in caso contrario NULL.

Osservazioni:

Se nDepth è impostato su 0, questo metodo viene chiuso e restituisce NULL. Se nDepth è minore di 3, la larghezza e l'altezza dell'ombreggiatura vengono impostate su 3 pixel.

CDrawingManager::RGBtoHSL

Converte un colore da una rappresentazione rosso, verde e blu (RGB) a una rappresentazione di tonalità, saturazione e leggerezza (HSL).

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

Parametri

Rgb
[in] Colore nei valori RGB.

H
[out] Puntatore a un valore double in cui il metodo archivia la tonalità per il colore.

S
[out] Puntatore a un valore double in cui il metodo archivia la saturazione per il colore.

L
[out] Puntatore a un doppio in cui il metodo archivia la leggerezza per il colore.

Osservazioni:

Un colore può essere rappresentato come HSV (tonalità, saturazione e valore), HSL (tonalità, saturazione e luminosità) o RGB (rosso, verde e blu). Per altre informazioni sulle diverse rappresentazioni di colore, vedere Color.

Il valore restituito per H è rappresentato come frazione compresa tra 0 e 1 dove 0 e 1 rappresentano il rosso. I valori restituiti per S e L sono numeri compresi tra 0 e 1.

CDrawingManager::RGBtoHSV

Converte un colore da una rappresentazione RGB a una rappresentazione HSV.

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

Parametri

Rgb
[in] Colore da convertire in una rappresentazione RGB.

H
[out] Puntatore a un valore double in cui questo metodo archivia la tonalità risultante per il colore.

S
[out] Puntatore a un valore double in cui questo metodo archivia la saturazione risultante per il colore.

V
[out] Puntatore a un valore double in cui questo metodo archivia il valore risultante per il colore.

Osservazioni:

Un colore può essere rappresentato come HSV (tonalità, saturazione e valore), HSL (tonalità, saturazione e luminosità) o RGB (rosso, verde e blu). Per altre informazioni sulle diverse rappresentazioni di colore, vedere Color.

Il valore restituito per H è un numero compreso tra 0 e 360 dove 0 e 360 indicano il rosso. I valori restituiti per S e V sono numeri compresi tra 0 e 1.

CDrawingManager::SetAlphaPixel

Colora un pixel trasparente in una bitmap.

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

Parametri

pBit
[in] Puntatore ai valori di bit per la bitmap.

rect
[in] Area rettangolare nell'applicazione. Il gestore disegno disegna un'ombreggiatura sotto e a destra di quest'area.

x
[in] Coordinata orizzontale del pixel da colorare.

y
[in] Coordinata verticale del pixel da colorare.

percento
[in] Percentuale di trasparenza.

iShadowSize
[in] Larghezza e altezza dell'ombreggiatura.

clrBase
[in] Colore dell'ombreggiatura.

bIsRight
[in] Parametro booleano che indica quale pixel colorare. Per ulteriori informazioni, vedere le sezione Note.

Osservazioni:

Questo metodo è un metodo helper usato dal metodo CDrawingManager::D rawShadow . Se si vuole disegnare un'ombreggiatura, è consigliabile chiamare CDrawingManager::DrawShadow invece.

Se bIsRight è impostato su TRUE, il pixel al colore viene misurato x pixel dal bordo destro di rect. Se è FALSE, il pixel da colorare viene misurato x pixel dal bordo sinistro di rect.

CDrawingManager::SetPixel

Modifica un singolo pixel in una bitmap con il colore specificato.

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

Parametri

pBit
[in] Puntatore ai valori di bit della bitmap.

cx
[in] Larghezza totale della bitmap.

Cy
[in] Altezza totale della bitmap.

x
[in] Coordinata x del pixel nella bitmap da modificare.

y
[in] Coordinata y del pixel nella bitmap da modificare.

color
[in] Nuovo colore per il pixel identificato dalle coordinate fornite.

CDrawingManager::SmartMixColors

Combina due colori in base a un rapporto ponderato.

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

Parametri

color1
[in] Primo colore da combinare.

color2
[in] Secondo colore da combinare.

dblLumRatio
[in] Rapporto per la luminosità del nuovo colore. SmartMixColors moltiplica la luminosità del colore misto in base a questo rapporto prima di determinare un colore finale.

k1
[in] Rapporto ponderato per il primo colore.

k2
[in] Rapporto ponderato per il secondo colore.

Valore restituito

Colore che rappresenta una combinazione ponderata dei colori forniti.

Osservazioni:

Questo metodo ha esito negativo e viene restituito un errore se k1 o k2 è minore di zero. Se entrambi questi parametri sono impostati su 0, il metodo restituisce RGB(0, 0, 0).

Il rapporto ponderato viene calcolato con la formula seguente: (color1 * k1 + color2 * k2)/(k1 + k2). Dopo aver determinato il rapporto ponderato, il metodo calcola la luminosità per il colore misto. Moltiplica quindi la luminosità per dblLumRatio. Se il valore è maggiore di 1,0, il metodo imposta la luminosità per il colore misto sul nuovo valore. In caso contrario, la luminosità è impostata su 1,0.

CDrawingManager::D rawRotated

Ruota il contenuto di un controller di dominio di origine all'interno del rettangolo specificato di 90 gradi.

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

Parametri

rectDest
Rettangolo di destinazione.

dcSrc
Contesto del dispositivo di origine.

bClockWise
TRUE indica la rotazione +90 gradi; FALSE indica la rotazione di -90 gradi.

Osservazioni:

Vedi anche

Grafico della gerarchia
Classi