Compartir por


Clase CDrawingManager

La clase CDrawingManager implementa algoritmos de dibujo complejos.

Sintaxis

class CDrawingManager : public CObject

Miembros

Constructores públicos

Nombre Descripción
CDrawingManager::CDrawingManager Construye un objeto CDrawingManager.
CDrawingManager::~CDrawingManager Destructor.

Métodos públicos

Nombre Descripción
CDrawingManager::CreateBitmap_32 Crea un mapa de bits independiente del dispositivo (DIB) de 32 bits en el que las aplicaciones pueden escribir directamente.
CDrawingManager::DrawAlpha Muestra mapas de bits que tienen píxeles transparentes o semitransparentes.
CDrawingManager::DrawRotated Gira un contenido de DC de origen dentro del rectángulo especificado por +/- 90 grados
CDrawingManager::DrawEllipse Dibuja una elipse con los colores de relleno y borde proporcionados.
CDrawingManager::DrawGradientRing Dibuja un anillo y lo rellena con un degradado de color.
CDrawingManager::DrawLine, CDrawingManager::DrawLineA Dibuja una línea.
CDrawingManager::DrawRect Dibuja un rectángulo con los colores de relleno y borde proporcionados.
CDrawingManager::DrawShadow Dibuja una sombra para un área rectangular.
CDrawingManager::Fill4ColorsGradient Rellena un área rectangular con dos degradados de color.
CDrawingManager::FillGradient Rellena un área rectangular con un degradado de color especificado.
CDrawingManager::FillGradient2 Rellena un área rectangular con un degradado de color especificado. También se especifica la dirección del cambio de color del degradado.
CDrawingManager::GrayRect Rellena un rectángulo con un color gris especificado.
CDrawingManager::HighlightRect Resalta un área rectangular.
CDrawingManager::HLStoRGB_ONE Convierte un color de una representación HLS en una representación RGB.
CDrawingManager::HLStoRGB_TWO Convierte un color de una representación HLS en una representación RGB.
CDrawingManager::HSVtoRGB Convierte un color de una representación HSV en una representación RGB.
CDrawingManager::HuetoRGB Método auxiliar que convierte un valor de matiz en un componente rojo, verde o azul.
CDrawingManager::MirrorRect Voltea un área rectangular.
CDrawingManager::PixelAlpha Método auxiliar que determina el color final de un píxel semitransparente.
CDrawingManager::PrepareShadowMask Crea un mapa de bits que se puede usar como sombra.
CDrawingManager::RGBtoHSL Convierte un color de una representación HSL en una representación RGB.
CDrawingManager::RGBtoHSV Convierte un color de una representación HSV en una representación RGB.
CDrawingManager::SetAlphaPixel Método auxiliar que colorea un píxel parcialmente transparente en un mapa de bits.
CDrawingManager::SetPixel Método auxiliar que cambia un solo píxel de un mapa de bits al color especificado.
CDrawingManager::SmartMixColors Combina dos colores basados en una relación ponderada.

Comentarios

La CDrawingManager clase proporciona funciones para dibujar sombras, degradados de color y rectángulos resaltados. También realiza mezcla alfa. Puedes usar esta clase para cambiar directamente la interfaz de usuario de la aplicación.

Jerarquía de herencia

CObject
CDrawingManager

Requisitos

Encabezado: afxdrawmanager.h

CDrawingManager::CDrawingManager

Construye un objeto CDrawingManager.

CDrawingManager(CDC& dc);

Parámetros

dc
[in] Referencia a un contexto de dispositivo. El CDrawingManager utiliza este contexto para dibujar.

CDrawingManager::CreateBitmap_32

Crea un mapa de bits independiente del dispositivo (DIB) de 32 bits en el que las aplicaciones pueden escribir directamente.

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

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

Parámetros

size
[in] Un parámetro CSize que indica el tamaño del mapa de bits.

pBits
[out] Puntero a un puntero de datos que recibe la ubicación de los valores de bits de DIB.

mapa de bits
Manipulador del mapa de bits original

clrTransparent
Valor RGB que especifica el color transparente del mapa de bits original.

Valor devuelto

Manipulador del mapa de bits DIB recién creado si este método es correcto; en caso contrario, NULL.

Comentarios

Para obtener más información sobre cómo crear un mapa de bits DIB, vea CreateDIBSection.

CDrawingManager::DrawAlpha

Muestra mapas de bits que tienen píxeles transparentes o semitransparentes.

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

Parámetros

pDstDC
[in] Un puntero al contexto del dispositivo para el destino.

rectDst
[in] Rectángulo de destino.

pSrcDC
[in] Un puntero al contexto del dispositivo para el origen.

rectSrc
[in] Rectángulo de origen.

Comentarios

Este método realiza la combinación alfa para dos mapas de bits. Para obtener más información sobre la combinación alfa, consulta AlphaBlend en Windows SDK.

CDrawingManager::DrawEllipse

Dibuja una elipse con los colores de relleno y borde proporcionados.

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

Parámetros

rect
[in] El rectángulo que delimita la elipse.

clrFill
[in] El color que usa este método para rellenar la elipse.

clrLine
[in] El color que usa este método como borde de la elipse.

Comentarios

Este método devuelve sin dibujar una elipse si alguno de los colores está establecido en -1. También devuelve sin dibujar una elipse si alguna dimensión del rectángulo delimitador es 0.

CDrawingManager::DrawGradientRing

Dibuja un anillo y lo rellena con un degradado de color.

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

Parámetros

rect
[in] Un parámetro CRect que especifica el límite del anillo de degradado.

colorStart
[in] El primer color para el degradado.

colorFinish
[in] El último color del degradado.

colorBorder
[in] El color del borde.

nAngle
[in] Un parámetro que especifica el ángulo de dibujo de degradado inicial. Este valor debe estar comprendido entre 0 y 360.

nWidth
[in] Ancho del borde del anillo.

clrFace
[in] Color del interior del anillo.

Valor devuelto

Si es correcta, su valor es distinto de cero. En caso contrario, es cero.

Comentarios

El rectángulo definido por rect debe tener al menos 5 píxeles de ancho y 5 píxeles de alto.

CDrawingManager::DrawLine, CDrawingManager::DrawLineA

Dibuja una línea.

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

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

Parámetros

x1
[in] La coordenada x donde comienza la línea.

y1
[in] La coordenada y donde comienza la línea.

x2
[in] La coordenada x donde finaliza la línea.

y2
[in] La coordenada y donde termina la línea.

clrLine
[in] El color de la línea.

Comentarios

Este método produce un error si clrLine es igual a -1.

CDrawingManager::DrawRect

Dibuja un rectángulo con los colores de relleno y borde proporcionados.

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

Parámetros

rect
[in] Los límites del rectángulo.

clrFill
[in] El color que usa este método para rellenar el rectángulo.

clrLine
[in] El color que usa este método como borde de la rectángulo.

Comentarios

Este método devuelve sin dibujar un rectángulo si alguno de los colores está establecido en -1. También devuelve si cualquiera de las dimensiones del rectángulo es 0.

CDrawingManager::DrawShadow

Dibuja una sombra para un área rectangular.

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

Parámetros

rect
[in] Un área rectangular en la aplicación. El administrador de dibujo dibujará una sombra debajo de este área.

nDepth
[in] El ancho y alto de la sombra.

iMinBrightness
[in] El brillo mínimo de la sombra.

iMaxBrightness
[in] El brillo máximo de la sombra.

pBmpSaveBottom
[in] Un puntero a un mapa de bits que contiene la imagen de la parte inferior de la sombra.

pBmpSaveRight
[in] Un puntero a un mapa de bits que contiene la imagen de la sombra que se dibuja en el lado derecho del rectángulo.

clrBase
[in] El color de la sombra.

bRightShadow
[in] Un parámetro booleano que indica cómo se dibuja la sombra. Si bRightShadow es TRUE, DrawShadow dibuja una sombra en el lado derecho del rectángulo.

Valor devuelto

Si es correcta, su valor es distinto de cero. En caso contrario, es cero.

Comentarios

Puede proporcionar dos mapas de bits válidos para las sombras inferiores y derechas mediante los parámetros pBmpSaveBottom y pBmpSaveRight. Si estos objetos CBitmap tienen un objeto GDI adjunto, DrawShadow usará esos mapas de bits como sombras. Si los CBitmap parámetros no tienen un objeto GDI adjunto, DrawShadow dibuja la sombra y adjunta los mapas de bits a los parámetros. En futuras llamadas a DrawShadow, puedes proporcionar estos mapas de bits para acelerar el proceso de dibujo. Para obtener más información sobre la clase y los CBitmap objetos GDI, consulta Objetos gráficos.

Si alguno de estos parámetros es NULL, DrawShadow dibujará automáticamente la sombra.

Si estableces bRightShadow en FALSE, la sombra se dibujará debajo y a la izquierda del área rectangular.

Ejemplo

En el siguiente ejemplo se muestra cómo se utiliza el método DrawShadow de la clase CDrawingManager. Este fragmento de código forma parte del ejemplo de demostración de Prop Sheet.

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

Rellena un área rectangular con dos degradados de color.

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

Parámetros

rect
[in] El ancho del rectángulo que se va a rellenar.

colorStart1
[in] El color inicial del primer degradado de color.

colorFinish1
[in] El color final del primer degradado de color.

colorStart2
[in] El color inicial del segundo degradado de color.

colorFinish2
[in] El color final del segundo degradado de color.

bHorz
[in] El parámetro booleano que indica si Fill4ColorsGradient colorea un degradado horizontal o vertical. TRUE indica un degradado horizontal.

nPercentage
[in] Un entero comprendido entre 0 y 100. Este valor indica el porcentaje del rectángulo que se va a rellenar con el primer degradado de color.

Comentarios

Cuando un rectángulo se rellena con dos degradados de color, se encuentran uno encima del otro o junto al otro, dependiendo del valor de bHorz. Cada degradado de color se calcula de forma independiente con el método CDrawingManager::FillGradient.

Este método genera un error de aserción si nPercentage es menor que 0 o más de 100.

CDrawingManager::FillGradient

Rellena un área rectangular con un degradado de color especificado.

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

Parámetros

rect
[in] El área rectangular que se va a rellenar.

colorStart
[in] El primer color para el degradado.

colorFinish
[in] El color final para el degradado.

bHorz
[in] Un parámetro booleano que especifica si FillGradient se debe dibujar un degradado horizontal o vertical.

nStartFlatPercentage
[in] El porcentaje del rectángulo que FillGradient rellena con colorStart antes de iniciar el degradado.

nEndFlatPercentage
[in] El porcentaje del rectángulo que FillGradient rellena con colorFinish después de finalizar el degradado.

Ejemplo

En el siguiente ejemplo se muestra cómo se utiliza el método FillGradient de la clase CDrawingManager. Este fragmento de código forma parte del ejemplo de demostración de MS Office 2007.

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

CDrawingManager::FillGradient2

Rellena un área rectangular con un degradado de color especificado.

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

Parámetros

rect
[in] El área rectangular que se va a rellenar.

colorStart
[in] El primer color para el degradado.

colorFinish
[in] El último color del degradado.

nAngle
[in] Un entero entre 0 y 360. Este parámetro especifica la dirección del degradado de color.

Comentarios

Usa nAngle para especificar la dirección del degradado de color. Al especificar la dirección del degradado de color, también se especifica dónde comienza el degradado de color. Un valor de 0 para nAngle indica que el degradado comienza desde la parte superior del rectángulo. A medida que aumenta nAngle, la ubicación inicial del degradado se mueve en una dirección en sentido contrario a las agujas del reloj en función del ángulo.

Ejemplo

En el siguiente ejemplo se muestra cómo se utiliza el método FillGradient2 de la clase CDrawingManager. Este fragmento de código forma parte del nuevo ejemplo de Controles.

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

Rellena un rectángulo con un color gris especificado.

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

Parámetros

rect
[in] El área rectangular que se va a rellenar.

nPercentage
[in] El porcentaje de gris que deseas en el rectángulo.

clrTransparent
[in] El color transparente de imagen.

clrDisabled
[in] El color que usa este método para desaturar si nPercentage está establecido en -1.

Valor devuelto

TRUE si el método se aplicó correctamente; de lo contrario, FALSE.

Comentarios

Para el parámetro nPercentage, un valor inferior indica un color más oscuro.

El valor máximo de nPercentage es 200. Un valor mayor que 200 no cambia la apariencia del rectángulo. Si el valor es -1, este método usa clrDisabled para limitar la saturación del rectángulo.

CDrawingManager::HighlightRect

Resalta un área rectangular.

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

Parámetros

rect
[in] Un área rectangular que se va a resaltar.

nPercentage
[in] Un porcentaje que indica cómo debe ser transparente el resaltado.

clrTransparent
[in] El color transparente de imagen.

nTolerance
[in] Un entero entre 0 y 255 que indica la tolerancia al color.

clrBlend
[in] El color base para la fusión.

Valor devuelto

TRUE si el método se ejecuta correctamente; de lo contrario, FALSE.

Comentarios

Si nPercentage está comprendido entre 0 y 99, HighlightRect usa el algoritmo de mezcla alfa. Para obtener más información sobre la combinación alfa, consulta Alfa Blending Lines and Fills. Si nPercentage es -1, este método usa el nivel de resaltado predeterminado. Si nPercentage es 100, este método no hace nada y devuelve TRUE.

El método usa el parámetro nTolerance para determinar si se debe resaltar el área rectangular. Para resaltar el rectángulo, la diferencia entre el color de fondo de la aplicación y clrTransparent debe ser menor que nTolerance en cada componente de color (rojo, verde y azul).

CDrawingManager::HLStoRGB_ONE

Convierte un color de una representación HLS en una representación RGB.

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

Parámetros

H
[in] Un número comprendido entre 0 y 1 que representa el matiz del color.

L
[in] Un número comprendido entre 0 y 1 que indica la luminosidad del color.

S
[in] Un número comprendido entre 0 y 1 que indica la saturación del color.

Valor devuelto

Representación RGB del color HLS proporcionado.

Comentarios

Un color se puede representar como HSV (matiz, saturación y valor), HSL (matiz, saturación y luminosidad) o RGB (rojo, verde y azul). Para obtener más información sobre las diferentes representaciones de color, consulta Color.

Este método y el método CDrawingManager::HLStoRGB_TWO realizan la misma operación, pero requieren valores diferentes para el parámetro H. En este método, H es un porcentaje del círculo. En el método CDrawingManager::HLStoRGB_TWO, H es un valor de grado entre 0 y 360, que ambos representan rojo. Por ejemplo, con HLStoRGB_ONE, un valor de 0,25 para H equivale a un valor de 90 con HLStoRGB_TWO.

CDrawingManager::HLStoRGB_TWO

Convierte un color de una representación HLS en una representación RGB.

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

Parámetros

H
[in] Un número comprendido entre 0 y 360 que representa el matiz del color.

L
[in] Un número comprendido entre 0 y 1 que indica la luminosidad del color.

S
[in] Un número comprendido entre 0 y 1 que indica la saturación del color.

Valor devuelto

Representación RGB del color HLS proporcionado.

Comentarios

Un color se puede representar como HSV (matiz, saturación y valor), HSL (matiz, saturación y luminosidad) o RGB (rojo, verde y azul). Para obtener más información sobre las diferentes representaciones de color, consulta Color.

Este método y el método CDrawingManager::HLStoRGB_ONE realizan la misma operación, pero requieren valores diferentes para el parámetro H. En este método H es un valor de grado entre 0 y 360, que ambos representan rojo. En el método CDrawingManager::HLStoRGB_ONE, H es un porcentaje del círculo. Por ejemplo, con HLStoRGB_ONE, un valor de 0,25 para H equivale a un valor de 90 con HLStoRGB_TWO.

CDrawingManager::HSVtoRGB

Convierte un color de una representación HSV en una representación RGB.

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

Parámetros

H
[in] Un número entre 0 y 360 que indica el matiz del color.

S
[in] Un número comprendido entre 0 y 1 que indica la saturación del color.

V
[in] Un número comprendido entre 0 y 1 que indica el valor del color.

Valor devuelto

La Representación RGB del color HSV proporcionado.

Comentarios

Un color se puede representar como HSV (matiz, saturación y valor), HSL (matiz, saturación y luminosidad) o RGB (rojo, verde y azul). Para obtener más información sobre las diferentes representaciones de color, consulta Color.

CDrawingManager::HuetoRGB

Convierte un valor de matiz en un componente rojo, verde o azul.

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

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

Parámetros

m1
[in] Consulta Comentarios.

m2
[in] Consulta Comentarios.

h
[in] Consulta Comentarios.

rm1
[in] Consulta Comentarios.

rm2
[in] Consulta Comentarios.

Rh
[in] Consulta Comentarios.

Valor devuelto

Componente rojo, verde o azul individual para el matiz proporcionado.

Comentarios

Este método es un método auxiliar que la clase CDrawingManager usa para calcular los componentes rojos, verdes y azules individuales de un color en una representación HSV o HSL. Este método no está diseñado para ser llamado directamente por el programador. Los parámetros de entrada son valores que dependen del algoritmo de conversión.

Para convertir un color HSV o HSL en una representación RGB, llame a uno de los métodos siguientes:

CDrawingManager::MirrorRect

Voltea un área rectangular.

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

Parámetros

rect
[in] El rectángulo delimitador del área que se va a girar.

bHorz
[in] Un parámetro booleano que indica si el rectángulo se voltea horizontal o verticalmente.

Comentarios

Este método puede girar cualquier área del contexto del dispositivo que pertenezca a la clase CDrawingManager. Si bHorz se establece en TRUE, este método gira el área horizontalmente. De lo contrario, gira el área verticalmente.

CDrawingManager::PixelAlpha

Calcula el color final de un píxel semitransparente.

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

Parámetros

srcPixel
[in] El color inicial del píxel.

percent
[in] Un número comprendido entre 0 y 100 que representa el porcentaje de transparencia. Un valor de 100 indica que el color inicial es completamente transparente.

percentR
[in] Un número comprendido entre 0 y 100 que representa el porcentaje de transparencia del componente rojo.

percentG
[in] Un número comprendido entre 0 y 100 que representa el porcentaje de transparencia del componente verde.

percentB
[in] Un número comprendido entre 0 y 100 que representa el porcentaje de transparencia del componente azul.

dstPixel
[in] El color base del píxel.

Valor devuelto

El color final del píxel semitransparente.

Comentarios

Se trata de una clase auxiliar para colorear mapas de bits semitransparentes y no está diseñado para ser llamado directamente por el programador.

Cuando se usa la versión del método que tiene dstPixel, el color final es una combinación de dstPixel y srcPixel. El color srcPixel es el color parcialmente transparente sobre el color base de dstPixel.

CDrawingManager::PrepareShadowMask

Crea un mapa de bits que se puede usar como sombra.

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

Parámetros

nDepth
[in] El ancho y alto de la sombra.

clrBase
[in] El color de la sombra.

iMinBrightness
[in] El brillo mínimo de la sombra.

iMaxBrightness
[in] El brillo máximo de la sombra.

Valor devuelto

Un manejador del mapa de bits creado si este método tiene éxito; en caso contrario, NULL.

Comentarios

Si nDepth se establece en 0, este método sale y devuelve NULL. Si nDepth es menor que 3, el ancho y el alto de la sombra se establecen en 3 píxeles.

CDrawingManager::RGBtoHSL

Convierte un color de una representación roja, verde y azul (RGB) en una representación de tono, saturación y ligereza (HSL).

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

Parámetros

rgb
[in] El color en valores RGB.

H
[out] El puntero a un doble donde el método almacena el tono para el color.

S
[out] El puntero a un doble donde el método almacena la saturación del color.

L
[out] El puntero a un doble donde el método almacena la ligereza del color.

Comentarios

Un color se puede representar como HSV (matiz, saturación y valor), HSL (matiz, saturación y luminosidad) o RGB (rojo, verde y azul). Para obtener más información sobre las diferentes representaciones de color, consulta Color.

El valor devuelto para H se representa como una fracción entre 0 y 1, donde 0 y 1 representan rojo. Los valores devueltos para S y L son números comprendidos entre 0 y 1.

CDrawingManager::RGBtoHSV

Convierte un color de una representación HSV en una representación RGB.

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

Parámetros

rgb
[in] Color que se va a convertir en una representación RGB.

H
[out] El puntero a un doble donde el método almacena el tono para el color.

S
[out] El puntero a un doble donde el método almacena la saturación del color.

V
[out] Un puntero a un doble donde este método almacena el valor resultante para el color.

Comentarios

Un color se puede representar como HSV (matiz, saturación y valor), HSL (matiz, saturación y luminosidad) o RGB (rojo, verde y azul). Para obtener más información sobre las diferentes representaciones de color, consulta Color.

El valor devuelto para H es un número comprendido entre 0 y 360, donde 0 y 360 indican rojo. Los valores devueltos para S y L son números comprendidos entre 0 y 1.

CDrawingManager::SetAlphaPixel

Colorea un píxel transparente en un mapa de bits.

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

Parámetros

pBits
[in] Un puntero a los valores de bits del mapa de bits.

rect
[in] Un área rectangular en la aplicación. El administrador de dibujo dibuja una sombra debajo y a la derecha de esta área.

x
[in] La coordenada horizontal del píxel al color.

y
[in] La coordenada vertical del píxel al color.

percent
[in] El porcentaje de transparencia.

iShadowSize
[in] El ancho y alto de la sombra.

clrBase
[in] El color de la sombra.

bIsRight
[in] El parámetro booleano que indica qué píxel se va a colorear. Vea la sección Comentarios para obtener más información.

Comentarios

Este método es un método auxiliar que usa el método CDrawingManager::D rawShadow. Se recomienda que si quieres dibujar una sombra, llames a CDrawingManager::DrawShadow en su lugar.

Si bIsRight se establece en TRUE, el píxel al color se mide x píxeles desde el borde derecho de rect. Si es FALSE, el píxel al color se mide x píxeles desde el borde izquierdo de rect.

CDrawingManager::SetPixel

Cambia un solo píxel de un mapa de bits al color especificado.

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

Parámetros

pBits
[in] Un puntero a los valores de bits del mapa de bits.

cx
[in] El ancho total del mapa de bits.

Cy
[in] La altura total del mapa de bits.

x
[in] La coordenada x del píxel en el mapa de bits que se va a cambiar.

y
[in] La coordenada y del píxel del mapa de bits que se va a cambiar.

color
[in] El nuevo color para el píxel identificado por las coordenadas proporcionadas.

CDrawingManager::SmartMixColors

Combina dos colores basados en una relación ponderada.

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

Parámetros

color1
[in] El primer color que se va a mezclar.

color2
[in] El segundo color que se va a mezclar.

dblLumRatio
[in] La relación de la luminosidad del nuevo color. SmartMixColors multiplica la luminosidad del color mixto por esta relación antes de determinar un color final.

k1
[in] La relación ponderada para el primer color.

k2
[in] La relación ponderada para el segundo color.

Valor devuelto

Un color que representa una mezcla ponderada de los colores proporcionados.

Comentarios

Este método produce un error si k1 o k2 es menor que cero. Si ambos parámetros se establecen en 0, el método devuelve RGB(0, 0, 0).

La relación ponderada se calcula con la fórmula siguiente: (color1 * k1 + color2 * k2)/(k1 + k2). Una vez determinada la relación ponderada, el método calcula la luminosidad del color mixto. Entonces multiplica la luminosidad por dblLumRatio. Si el valor es mayor que 1,0, el método establece la luminosidad del color mixto en el nuevo valor. De lo contrario, la luminosidad se establece en 1,0.

CDrawingManager::DrawRotated

Gira un contenido de DC de origen dentro del rectángulo especificado por +/- 90 grados.

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

Parámetros

rectDest
Rectángulo de destino.

dcSrc
El contexto de dispositivo de origen.

bClockWise
TRUE indica el giro +90 grados; FALSE indica que gira -90 grados.

Comentarios

Consulte también

Gráfico de jerarquías
Clases