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.