Compartilhar via


Classe CDrawingManager

A classe CDrawingManager implementa algoritmos de desenho complexos.

Sintaxe

class CDrawingManager : public CObject

Membros

Construtores públicos

Nome Descrição
CDrawingManager::CDrawingManager Constrói um objeto CDrawingManager.
CDrawingManager::~CDrawingManager Destruidor.

Métodos públicos

Nome Descrição
CDrawingManager::CreateBitmap_32 Cria um DIB (bitmap independente de dispositivo) de 32 bits em que os aplicativos podem gravar diretamente.
CDrawingManager::DrawAlpha Exibe bitmaps que têm pixels transparentes ou semitransparentes.
CDrawingManager::DrawRotated Gira um conteúdo de DC de origem dentro do retângulo especificado em +/- 90 graus
CDrawingManager::DrawEllipse Desenha uma elipse com as cores de preenchimento e borda fornecidas.
CDrawingManager::DrawGradientRing Desenha um anel e o preenche com um gradiente de cor.
CDrawingManager::DrawLine, CDrawingManager::DrawLineA Desenha uma linha.
CDrawingManager::DrawRect Desenha um retângulo com as cores de preenchimento e borda fornecidas.
CDrawingManager::DrawShadow Desenha a sombra de uma área retangular.
CDrawingManager::Fill4ColorsGradient Preenche uma área retangular com dois gradientes de cor.
CDrawingManager::FillGradient Preenche uma área retangular com um gradiente de cor especificado.
CDrawingManager::FillGradient2 Preenche uma área retangular com um gradiente de cor especificado. A direção da alteração de cor do gradiente também é especificada.
CDrawingManager::GrayRect Preenche um retângulo com a cor cinza especificada.
CDrawingManager::HighlightRect Realça uma área retangular.
CDrawingManager::HLStoRGB_ONE Converte uma cor de representação HLS em representação RGB.
CDrawingManager::HLStoRGB_TWO Converte uma cor de representação HLS em representação RGB.
CDrawingManager::HSVtoRGB Converte uma cor de representação HSV em representação RGB.
CDrawingManager::HuetoRGB Método auxiliar que converte um valor de matiz em um componente vermelho, verde ou azul.
CDrawingManager::MirrorRect Inverte uma área retangular.
CDrawingManager::PixelAlpha Método auxiliar que determina a cor final de um pixel semitransparente.
CDrawingManager::PrepareShadowMask Cria um bitmap que pode ser usado como sombra.
CDrawingManager::RGBtoHSL Converte uma cor de representação RGB em representação HSL.
CDrawingManager::RGBtoHSV Converte uma cor de representação RGB em representação HSV.
CDrawingManager::SetAlphaPixel Método auxiliar que colore um pixel parcialmente transparente em um bitmap.
CDrawingManager::SetPixel Método auxiliar que altera um único pixel em um bitmap para a cor especificada.
CDrawingManager::SmartMixColors Combina duas cores com base em uma proporção ponderada.

Comentários

A classe CDrawingManager fornece funções para sombras de desenho, gradientes de cor e retângulos realçados. Ela também executa a combinação alfa. Você pode usar essa classe para alterar diretamente a interface do usuário do aplicativo.

Hierarquia de herança

CObject
CDrawingManager

Requisitos

Cabeçalho: afxdrawmanager.h

CDrawingManager::CDrawingManager

Cria um objeto CDrawingManager.

CDrawingManager(CDC& dc);

Parâmetros

dc
[in] Uma referência a um contexto de dispositivo. O CDrawingManager uso desse contexto para desenho.

CDrawingManager::CreateBitmap_32

Cria um DIB (bitmap independente de dispositivo) de 32 bits em que os aplicativos podem gravar diretamente.

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

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

Parâmetros

size
[in] Um parâmetro CSize que indica o tamanho do bitmap.

pBits
[out] Um ponteiro para um ponteiro de dados que recebe o local dos valores de bit do DIB.

bitmap
Um identificador para o bitmap original

clrTransparent
Um valor RGB que especifica a cor transparente do bitmap original.

Valor de retorno

Um identificador para o bitmap DIB recém-criado, se esse método tiver êxito. Caso contrário, NULL.

Comentários

Para obter mais informações sobre como criar um bitmap DIB, confira CreateDIBSection.

CDrawingManager::DrawAlpha

Exibe bitmaps que têm pixels transparentes ou semitransparentes.

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

Parâmetros

pDstDC
[in] Um ponteiro para o contexto do dispositivo do destino.

rectDst
[in] O retângulo de destino.

pSrcDC
[in] Um ponteiro para o contexto do dispositivo da origem.

rectSrc
[in] O retângulo de origem.

Comentários

Esse método executa a combinação alfa para dois bitmaps. Para obter mais informações sobre a combinação alfa, confira AlphaBlend no SDK do Windows.

CDrawingManager::DrawEllipse

Desenha uma elipse com as cores de preenchimento e borda fornecidas.

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

Parâmetros

rect
[in] O retângulo delimitador da elipse.

clrFill
[in] A cor que este método usa para preencher a elipse.

clrLine
[in] A cor que este método usa como a borda da elipse.

Comentários

Esse método retornará sem desenhar uma elipse, se qualquer uma das cores estiver definida como -1. Ele também retornará sem desenhar uma elipse, se qualquer uma das dimensões do retângulo delimitador for 0.

CDrawingManager::DrawGradientRing

Desenha um anel e o preenche com um gradiente de cor.

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

Parâmetros

rect
[in] Um parâmetro CRect que especifica o limite do anel de gradiente.

colorStart
[in] A primeira cor do gradiente.

colorFinish
[in] A última cor do gradiente.

colorBorder
[in] A cor da borda.

nAngle
[in] Um parâmetro que especifica o ângulo de desenho do gradiente inicial. Esse valor deve estar entre 0 e 360.

nWidth
[in] A largura da borda do anel.

clrFace
[in] A cor do interior do anel.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Comentários

O retângulo definido pelo rect deve ter pelo menos 5 pixels de largura e 5 pixels de altura.

CDrawingManager::DrawLine, CDrawingManager::DrawLineA

Desenha uma linha.

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] A coordenada x em que a linha é iniciada.

y1
[in] A coordenada y em que a linha é iniciada.

x2
[in] A coordenada x em que a linha é encerrada.

y2
[in] A coordenada y em que a linha é encerrada.

clrLine
[in] A cor da linha.

Comentários

Esse método falhará se clrLine for igual a -1.

CDrawingManager::DrawRect

Desenha um retângulo com as cores de preenchimento e borda fornecidas.

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

Parâmetros

rect
[in] Os limites do retângulo.

clrFill
[in] A cor que este método usa para preencher o retângulo.

clrLine
[in] A cor que este método usa para a borda do retângulo.

Comentários

Esse método retornará sem desenhar um retângulo, se qualquer uma das cores estiver definida como -1. Ele também retornará, se qualquer uma das dimensões do retângulo for 0.

CDrawingManager::DrawShadow

Desenha a sombra de uma área retangular.

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] Uma área retangular no aplicativo. O gerenciador de desenhos desenhará uma sombra abaixo dessa área.

nDepth
[in] A largura e a altura da sombra.

iMinBrightness
[in] O brilho mínimo da sombra.

iMaxBrightness
[in] O brilho máximo da sombra.

pBmpSaveBottom
[in] Um ponteiro para um bitmap que contém a imagem da parte inferior da sombra.

pBmpSaveRight
[in] Um ponteiro para um bitmap que contém a imagem da sombra desenhada no lado direito do retângulo.

clrBase
[in] A cor da sombra.

bRightShadow
[in] Um parâmetro booliano que indica como a sombra é desenhada. Se bRightShadow for TRUE, DrawShadow desenhará uma sombra no lado direito do retângulo.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Comentários

Você pode fornecer dois bitmaps válidos para as sombras inferior e direita, usando os parâmetros pBmpSaveBottom e pBmpSaveRight. Se esses objetos CBitmap tiverem um objeto GDI anexado, DrawShadow usará esses bitmaps como sombras. Se os parâmetros CBitmap não tiverem um objeto GDI anexado, DrawShadow desenhará a sombra e anexará os bitmaps aos parâmetros. Nas chamadas futuras para DrawShadow, você poderá fornecer esses bitmaps para acelerar o processo de desenho. Para obter mais informações sobre a classe CBitmap e objetos GDI, confira Objetos Gráficos.

Se um desses parâmetros for NULL, DrawShadow desenhará a sombra automaticamente.

Se você definir bRightShadow como FALSE, a sombra será desenhada abaixo e à esquerda da área retangular.

Exemplo

O exemplo a seguir demonstra como usar o método DrawShadow da classe CDrawingManager. Este snippet de código faz parte do exemplo de Demonstração da Folha de Proposta.

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

Preenche uma área retangular com dois gradientes de cor.

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

Parâmetros

rect
[in] O retângulo a ser preenchido.

colorStart1
[in] A cor inicial do primeiro gradiente de cor.

colorFinish1
[in] A cor final do primeiro gradiente de cor.

colorStart2
[in] A cor inicial do segundo gradiente de cor.

colorFinish2
[in] A cor final do segundo gradiente de cor.

bHorz
[in] Um parâmetro booleano que indica se Fill4ColorsGradient colore um gradiente horizontal ou vertical. TRUE indica um gradiente horizontal.

nPercentage
[in] Um inteiro de 0 a 100. Esse valor indica a porcentagem do retângulo a ser preenchido com o primeiro gradiente de cor.

Comentários

Quando um retângulo é preenchido com dois gradientes de cor, eles ficam localizados acima um do outro ou próximos um do outro, dependendo do valor de bHorz. Cada gradiente de cor é calculado de maneira independente, com o método CDrawingManager::FillGradient.

Esse método gera uma falha de asserção, se nPercentage for menor que 0 ou maior que 100.

CDrawingManager::FillGradient

Preenche uma área retangular com o gradiente de cor especificado.

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

Parâmetros

rect
[in] A área retangular a ser preenchida.

colorStart
[in] A primeira cor do gradiente.

colorFinish
[in] A cor final do gradiente.

bHorz
[in] Um parâmetro booliano que especifica se FillGradient deve desenhar um gradiente horizontal ou vertical.

nStartFlatPercentage
[in] A porcentagem do retângulo que FillGradient preenche com colorStart, antes de iniciar o gradiente.

nEndFlatPercentage
[in] A porcentagem do retângulo que FillGradient preenche com colorFinish, depois de concluir o gradiente.

Exemplo

O exemplo a seguir demonstra como usar o método FillGradient da classe CDrawingManager. Este snippet de código faz parte do exemplo de Demonstração do MS Office 2007.

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

CDrawingManager::FillGradient2

Preenche uma área retangular com um gradiente de cor especificado.

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

Parâmetros

rect
[in] A área retangular a ser preenchida.

colorStart
[in] A primeira cor do gradiente.

colorFinish
[in] A última cor do gradiente.

nAngle
[in] Um inteiro entre 0 e 360. Esse parâmetro especifica a direção do gradiente de cor.

Comentários

Use nAngle para especificar a direção do gradiente de cor. Ao especificar a direção do gradiente de cor, você também especifica onde o gradiente de cor será iniciado. Um valor de 0 para nAngle indica que o gradiente começa na parte superior do retângulo. À medida que nAngle aumenta, o local inicial do gradiente se move no sentido anti-horário com base no ângulo.

Exemplo

O exemplo a seguir demonstra como usar o método FillGradient2 da classe CDrawingManager. Este snippet de código faz parte do exemplo de Novos 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

Preenche um retângulo com a cor cinza especificada.

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

Parâmetros

rect
[in] A área retangular a ser preenchida.

nPercentage
[in] A porcentagem de cinza que você deseja no retângulo.

clrTransparent
[in] A cor transparente.

clrDisabled
[in] A cor que este método usa para dessaturação, se nPercentage for definido como -1.

Valor de retorno

TRUE se o método foi bem-sucedido; caso contrário, FALSE.

Comentários

Para o parâmetro nPercentage, um valor inferior indica uma cor mais escura.

O valor máximo para nPercentage é 200. Um valor maior que 200 não altera a aparência do retângulo. Se o valor for -1, esse método usará clrDisabled para limitar a saturação do retângulo.

CDrawingManager::HighlightRect

Realça uma área retangular.

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

Parâmetros

rect
[in] Uma área retangular a ser realçada.

nPercentage
[in] Uma porcentagem que indica qual deve ser o grau de transparência do realce.

clrTransparent
[in] A cor transparente.

nTolerance
[in] Um inteiro entre 0 e 255 que indica a tolerância a cores.

clrBlend
[in] A cor base da mesclagem.

Valor de retorno

TRUE, se o método tiver êxito. Caso contrário, FALSE.

Comentários

Se nPercentage estiver entre 0 e 99, HighlightRect usará o algoritmo de combinação alfa. Para obter mais informações sobre a combinação alfa, confira Linhas e Preenchimentos da Combinação Alfa. Se nPercentage for -1, esse método usará o nível de realce padrão. Se nPercentage for 100, esse método não fará nada e retornará TRUE.

O método usa o parâmetro nTolerance para determinar se a área retangular deve ser realçada. Para realçar o retângulo, a diferença entre a cor da tela de fundo do aplicativo e o clrTransparent deve ser menor que nTolerance em cada componente de cor (vermelho, verde e azul).

CDrawingManager::HLStoRGB_ONE

Converte uma cor de representação HLS em representação RGB.

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

Parâmetros

H
[in] Um número entre 0 e 1 que representa a matiz da cor.

L
[in] Um número entre 0 e 1 que indica a luminosidade da cor.

S
[in] Um número entre 0 e 1 que indica a saturação da cor.

Valor de retorno

A representação RGB da cor HLS fornecida.

Comentários

Uma cor pode ser representada como HSV (matiz, saturação e valor), HSL (matiz, saturação e luminosidade) ou RGB (vermelho, verde e azul). Para obter mais informações sobre as diferentes representações de cor, confira Cor.

Esse método e o método CDrawingManager::HLStoRGB_TWO executam a mesma operação, mas exigem valores diferentes para o parâmetro H. Nesse método, H é uma porcentagem do círculo. No método CDrawingManager::HLStoRGB_TWO, H é um valor de grau entre 0 e 360, em que ambos representam vermelho. Por exemplo, com HLStoRGB_ONE, um valor de 0,25 para H é equivalente a um valor de 90 com HLStoRGB_TWO.

CDrawingManager::HLStoRGB_TWO

Converte uma cor de representação HLS em representação RGB.

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

Parâmetros

H
[in] Um número entre 0 e 360 que representa a matiz da cor.

L
[in] Um número entre 0 e 1 que indica a luminosidade da cor.

S
[in] Um número entre 0 e 1 que indica a saturação da cor.

Valor de retorno

A representação RGB da cor HLS fornecida.

Comentários

Uma cor pode ser representada como HSV (matiz, saturação e valor), HSL (matiz, saturação e luminosidade) ou RGB (vermelho, verde e azul). Para obter mais informações sobre as diferentes representações de cor, confira Cor.

Esse método e o método CDrawingManager::HLStoRGB_ONE executam a mesma operação, mas exigem valores diferentes para o parâmetro H. Nesse método, H é um valor de grau entre 0 e 360, em que ambos representam vermelho. No método CDrawingManager::HLStoRGB_ONE, H é uma porcentagem do círculo. Por exemplo, com HLStoRGB_ONE, um valor de 0,25 para H é equivalente a um valor de 90 com HLStoRGB_TWO.

CDrawingManager::HSVtoRGB

Converte uma cor de representação HSV em representação RGB.

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

Parâmetros

H
[in] Um número entre 0 e 360 que indica a matiz da cor.

S
[in] Um número entre 0 e 1 que indica a saturação da cor.

V
[in] Um número entre 0 e 1 que indica o valor da cor.

Valor de retorno

A representação RGB da cor HSV fornecida.

Comentários

Uma cor pode ser representada como HSV (matiz, saturação e valor), HSL (matiz, saturação e luminosidade) ou RGB (vermelho, verde e azul). Para obter mais informações sobre as diferentes representações de cor, confira Cor.

CDrawingManager::HuetoRGB

Converte um valor de matiz em um componente vermelho, verde ou 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] Confira Comentários.

m2
[in] Confira Comentários.

h
[in] Confira Comentários.

rm1
[in] Confira Comentários.

rm2
[in] Confira Comentários.

RH
[in] Confira Comentários.

Valor de retorno

O componente vermelho, verde ou azul individual da matiz fornecida.

Comentários

Esse é um método auxiliar que a classe CDrawingManager usa para calcular os componentes vermelhos, verdes e azuis individuais de uma cor em uma representação HSV ou HSL. Esse método não foi criado para ser chamado diretamente pelo programador. Os parâmetros de entrada são valores que dependem do algoritmo de conversão.

Para converter uma cor HSV ou HSL em uma representação RGB, chame um dos seguintes métodos:

CDrawingManager::MirrorRect

Inverte uma área retangular.

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

Parâmetros

rect
[in] O retângulo delimitador da área a ser invertida.

bHorz
[in] Um parâmetro booliano que indica se o retângulo é invertido horizontal ou verticalmente.

Comentários

Esse método pode inverter qualquer área do contexto do dispositivo pertencente à classe CDrawingManager. Se bHorz estiver definido como TRUE, esse método inverterá a área horizontalmente. Caso contrário, inverterá a área verticalmente.

CDrawingManager::PixelAlpha

Calcula a cor final de um pixel 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] A cor inicial do pixel.

percent
[in] Um número entre 0 e 100 que representa o percentual de transparência. Um valor de 100 indica que a cor inicial é completamente transparente.

percentR
[in] Um número entre 0 e 100 que representa o percentual de transparência do componente vermelho.

percentG
[in] Um número entre 0 e 100 que representa o percentual de transparência do componente verde.

percentB
[in] Um número entre 0 e 100 que representa o percentual de transparência do componente azul.

dstPixel
[in] A cor base do pixel.

Valor de retorno

A cor final do pixel semitransparente.

Comentários

Essa é uma classe auxiliar para colorir bitmaps semitransparentes e não foi criada para ser chamada diretamente pelo programador.

Quando você usa a versão do método que tem dstPixel, a cor final é uma combinação de dstPixel e srcPixel. A cor srcPixel é a cor parcialmente transparente sobre a cor base de dstPixel.

CDrawingManager::PrepareShadowMask

Cria um bitmap que pode ser usado como sombra.

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

Parâmetros

nDepth
[in] A largura e a altura da sombra.

clrBase
[in] A cor da sombra.

iMinBrightness
[in] O brilho mínimo da sombra.

iMaxBrightness
[in] O brilho máximo da sombra.

Valor de retorno

Um identificador para o bitmap criado, se esse método tiver êxito. Caso contrário, NULL.

Comentários

Se nDepth for definido como 0, esse método sairá e retornará NULL. Se nDepth for menor que 3, a largura e a altura da sombra serão definidas como 3 pixels.

CDrawingManager::RGBtoHSL

Converte uma cor de uma representação RGB (vermelho, verde e azul) em uma representação HSL (matiz, saturação e luminosidade).

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

Parâmetros

rgb
[in] A cor em valores RGB.

H
[out] Um ponteiro para um duplo em que o método armazena a matiz da cor.

S
[out] Um ponteiro para um duplo em que o método armazena a saturação da cor.

L
[out] Um ponteiro para um duplo em que o método armazena a luminosidade da cor.

Comentários

Uma cor pode ser representada como HSV (matiz, saturação e valor), HSL (matiz, saturação e luminosidade) ou RGB (vermelho, verde e azul). Para obter mais informações sobre as diferentes representações de cor, confira Cor.

O valor retornado para H é representado como uma fração entre 0 e 1, em que 0 e 1 representam vermelho. Os valores retornados para S e L são números entre 0 e 1.

CDrawingManager::RGBtoHSV

Converte uma cor de representação RGB em representação HSV.

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

Parâmetros

rgb
[in] A cor a ser convertida em uma representação RGB.

H
[out] Um ponteiro para um duplo em que o método armazena a matiz resultante da cor.

S
[out] Um ponteiro para um duplo em que o método armazena a saturação resultante da cor.

V
[out] Um ponteiro para um duplo em que esse método armazena o valor resultante da cor.

Comentários

Uma cor pode ser representada como HSV (matiz, saturação e valor), HSL (matiz, saturação e luminosidade) ou RGB (vermelho, verde e azul). Para obter mais informações sobre as diferentes representações de cor, confira Cor.

O valor retornado para H é um número entre 0 e 360, em que 0 e 360 indicam vermelho. Os valores retornados para S e V são números entre 0 e 1.

CDrawingManager::SetAlphaPixel

Colore um pixel transparente em um bitmap.

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] Um ponteiro para os valores de bit do bitmap.

rect
[in] Uma área retangular no aplicativo. O gerenciador de desenhos desenha uma sombra abaixo e à direita dessa área.

x
[in] A coordenada horizontal do pixel a ser colorido.

y
[in] A coordenada vertical do pixel a ser colorido.

percent
[in] O percentual de transparência.

iShadowSize
[in] A largura e a altura da sombra.

clrBase
[in] A cor da sombra.

bIsRight
[in] Um parâmetro booliano que indica o pixel a ser colorido. Consulte a seção Comentários para obter mais informações.

Comentários

Esse é um método auxiliar usado pelo método CDrawingManager::D rawShadow. Em vez disso, recomendamos que você chame CDrawingManager::DrawShadow, se quiser desenhar uma sombra.

Se bIsRight for definido como TRUE, o pixel a ser colorido será medido x pixels a partir da borda direita do rect. Se for FALSE, o pixel a ser colorido será medido x pixels a partir da borda esquerda do rect.

CDrawingManager::SetPixel

Altera um único pixel em um bitmap para a cor especificada.

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

Parâmetros

pBits
[in] Um ponteiro para os valores de bit do bitmap.

cx
[in] A largura total do bitmap.

Cy
[in] A altura total do bitmap.

x
[in] A coordenada x do pixel no bitmap a ser alterado.

y
[in] A coordenada y do pixel no bitmap a ser alterado.

color
[in] A nova cor do pixel identificado pelas coordenadas fornecidas.

CDrawingManager::SmartMixColors

Combina duas cores com base em uma proporção ponderada.

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

Parâmetros

cor1
[in] A primeira cor a ser misturada.

color2
[in] A segunda cor a ser misturada.

dblLumRatio
[in] A proporção de luminosidade da nova cor. SmartMixColors multiplica a luminosidade da cor misturada por essa proporção, antes de determinar uma cor final.

K1
[in] A proporção ponderada para a primeira cor.

k2
[in] A proporção ponderada para a segunda cor.

Valor de retorno

Uma cor que representa uma mistura ponderada das cores fornecidas.

Comentários

Esse método falhará e apresentará um erro, se k1 ou k2 for menor que zero. Se ambos os parâmetros forem definidos como 0, o método retornará RGB(0, 0, 0).

A proporção ponderada é calculada com a seguinte fórmula: (color1 * k1 + color2 * k2)/(k1 + k2). Depois que a proporção ponderada é determinada, o método calcula a luminosidade para a cor misturada. Em seguida, multiplica a luminosidade por dblLumRatio. Se o valor for maior que 1,0, o método definirá a luminosidade da cor misturada como o novo valor. Caso contrário, a luminosidade será definida como 1.0.

CDrawingManager::DrawRotated

Gira um conteúdo de DC de origem dentro do retângulo especificado em 90 graus.

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

Parâmetros

rectDest
Retângulo de destino.

dcSrc
O contexto do dispositivo de origem.

bClockWise
TRUE indica girar +90 graus. FALSE indica girar -90 graus.

Comentários

Confira também

Gráfico da hierarquia
Classes