Partilhar via


Classe CDrawingManager

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

A CDrawingManager classe implementa algoritmos complexos de desenho.

Sintaxe

class CDrawingManager : public CObject

Membros

Construtores Públicos

Nome Description
CDrawingManager::CDrawingManager Constrói um CDrawingManager objeto.
CDrawingManager::~CDrawingManager Destruidor.

Métodos Públicos

Nome Description
CDrawingManager::CreateBitmap_32 Cria um bitmap (DIB) independente do dispositivo (DIB) de 32 bits onde as aplicações podem escrever diretamente.
CDrawingManager::D rawAlpha Exibe bitmaps com pixels transparentes ou semitransparentes.
CDrawingGerente::D rawRotated Roda o conteúdo DC da fonte dentro do retângulo dado em +/- 90 graus
CDrawingManager::D rawEllipse Desenha uma elipse com as cores de preenchimento e borda fornecidas.
CDrawingManager::D rawGradientRing Desenha um anel e preenche-o com um gradiente de cor.
CDrawingGerente::D rawLine, CDrawingGerente::D rawLineA Traça um limite.
CDrawingManager::D rawRect Desenha um retângulo com as cores de preenchimento e borda fornecidas.
CDrawingGerente::D rawShadow Desenha uma sombra para uma área retangular.
CDrawingManager::Fill4ColorsGradient Preenche uma área retangular com dois gradientes de cor.
CDrawingManager::FillGradienteT 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 mudança de cor do gradiente também é especificada.
CDrawingManager::GrayRect Preenche um retângulo com uma cor cinzenta especificada.
CDrawingManager::HighlightRect Destaca uma área retangular.
CDrawingManager::HLStoRGB_ONE Converte uma cor de uma representação HLS para uma representação RGB.
CDrawingManager::HLStoRGB_TWO Converte uma cor de uma representação HLS para uma representação RGB.
CDrawingManager::HSVtoRGB Converte uma cor de uma representação HSV para uma representação RGB.
CDrawingManager::HuetoRGB Método auxiliar que converte um valor de matiz para um componente vermelho, verde ou azul.
CDrawingManager::MirrorRect Vira uma área retangular.
CDrawingManager::P ixelAlpha Método auxiliar que determina a cor final para um pixel semitransparente.
CDrawingManager::P repareShadowMask Cria um bitmap que pode ser usado como sombra.
CDrawingManager::RGBtoHSL Converte uma cor de uma representação RGB para uma representação HSL.
CDrawingManager::RGBtoHSV Converte uma cor de uma representação RGB para uma representação HSV.
CDrawingManager::SetAlphaPixel Método auxiliar que colore um pixel parcialmente transparente num bitmap.
CDrawingManager::SetPixel Método auxiliar que altera um único píxel num bitmap para a cor especificada.
Gestor do CDrawing::SmartMixColors Combina duas cores com base numa razão ponderada.

Observações

A CDrawingManager classe fornece funções para desenhar sombras, gradientes de cor e retângulos destacados. Também realiza alpha-blending. Pode usar esta classe para alterar diretamente a interface da sua aplicação.

Hierarquia de herança

CObject
CDrawingManager

Requerimentos

Cabeçalho: afxdrawmanager.h

CDrawingManager::CDrawingManager

Constrói um objeto CDrawingManager .

CDrawingManager(CDC& dc);

Parâmetros

DC
[dentro] Uma referência ao contexto de um dispositivo. Utiliza CDrawingManager este contexto para desenhar.

CDrawingManager::CreateBitmap_32

Cria um bitmap (DIB) independente do dispositivo (DIB) de 32 bits onde as aplicações podem escrever diretamente.

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

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

Parâmetros

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

pBits
[fora] Um ponteiro para um ponteiro de dados que recebe a localização dos valores de bits do DIB.

Bitmap
Um handle para o bitmap original

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

Valor de retorno

Um handle para o bitmap DIB recém-criado se este método for bem-sucedido; caso contrário, NULL.

Observações

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

CDrawingManager::D rawAlpha

Exibe bitmaps com pixels transparentes ou semitransparentes.

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

Parâmetros

pDstDC
[dentro] Um apontador para o contexto do dispositivo para o destino.

rectDst
[dentro] O retângulo de destino.

pSrcDC
[dentro] Um apontador para o contexto do dispositivo para a fonte.

rectSrc
[dentro] O retângulo de origem.

Observações

Este método realiza alpha-blending para dois bitmaps. Para mais informações sobre alpha-blending, consulte AlphaBlend no SDK do Windows.

CDrawingManager::D rawEllipse

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

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

Parâmetros

retângulo
[dentro] O retângulo delimitador para a elipse.

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

clrLine
[dentro] A cor que este método usa como margem da elipse.

Observações

Este método retorna sem desenhar uma elipse se qualquer uma das cores estiver definida para -1. Também retorna sem desenhar uma elipse se qualquer dimensão do retângulo delimitador for 0.

CDrawingManager::D rawGradientRing

Desenha um anel e preenche-o 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

retângulo
[dentro] Um parâmetro CRect que especifica a fronteira do anel gradiente.

colorStart
[dentro] A primeira cor para o gradiente.

colorAcabamento
[dentro] A última cor para o gradiente.

colorBorder
[dentro] A cor da borda.

nÂngulo
[dentro] Um parâmetro que especifica o ângulo inicial de desenho do gradiente. Este valor deve estar entre 0 e 360.

nLargura
[dentro] A largura da borda do anel.

clrFace
[dentro] A cor do interior do anel.

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

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

CDrawingGerente::D rawLine, CDrawingGerente::D rawLineA

Traça um limite.

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
[dentro] A coordenada x onde a linha começa.

Y1
[dentro] A coordenada y onde a linha começa.

x2
[dentro] A coordenada x onde termina a linha.

Y2
[dentro] A coordenada y onde a linha termina.

clrLine
[dentro] A cor da linha.

Observações

Este método falha se clrLine for igual a -1.

CDrawingManager::D rawRect

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

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

Parâmetros

retângulo
[dentro] Os limites do retângulo.

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

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

Observações

Este método retorna sem desenhar um retângulo se qualquer uma das cores estiver definida para -1. Também devolve se qualquer dimensão do retângulo for 0.

CDrawingGerente::D rawShadow

Desenha uma sombra para 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

retângulo
[dentro] Uma área retangular na sua candidatura. O responsável pelo desenho vai desenhar uma sombra por baixo desta área.

nProfundidade
[dentro] A largura e altura da sombra.

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

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

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

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

clrBase
[dentro] A cor da sombra.

bRightShadow
[dentro] Um parâmetro booleano que indica como a sombra é desenhada. Se bRightShadow for TRUE, DrawShadow desenha uma sombra no lado direito do retângulo.

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

Podes fornecer dois bitmaps válidos para as sombras inferior e direita usando os parâmetros pBmpSaveBottom e pBmpSaveRight. Se estes objetos CBitmap tiverem um objeto GDI associado, DrawShadow usará esses bitmaps como sombras. Se os CBitmap parâmetros não tiverem um objeto GDI associado, DrawShadow desenha a sombra e anexa os bitmaps aos parâmetros. Em chamadas futuras para DrawShadow, pode fornecer estes bitmaps para acelerar o processo de desenho. Para mais informações sobre a CBitmap classe e os objetos GDI, veja Objetos Gráficos.

Se algum destes parâmetros for NULL, DrawShadow desenhará automaticamente a sombra.

Se definires bRightShadow para FALSE, a sombra será desenhada por baixo e à esquerda da área retangular.

Example

O exemplo seguinte demonstra como usar o DrawShadow método da CDrawingManager classe. Este excerto de código faz parte do exemplo Prop Sheet Demo.

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

retângulo
[dentro] O retângulo para preencher.

colorStart1
[dentro] A cor inicial para o primeiro gradiente de cor.

colorFinish1
[dentro] A cor final para o primeiro gradiente de cor.

colorStart2
[dentro] A cor inicial para o segundo gradiente de cor.

colorFinish2
[dentro] A cor final para o segundo gradiente de cor.

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

nPercentagem
[dentro] Um inteiro de 0 a 100. Este valor indica a percentagem do retângulo a preencher com o primeiro gradiente de cor.

Observações

Quando um retângulo é preenchido com dois gradientes de cor, estes estão localizados um acima do outro ou lado a lado, dependendo do valor de bHorz. Cada gradiente de cor é calculado independentemente com o método CDrawingManager::FillGradient.

Este método gera uma falha de asserção se nPercentagem for inferior a 0 ou superior a 100.

CDrawingManager::FillGradienteT

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

retângulo
[dentro] A área retangular para preencher.

colorStart
[dentro] A primeira cor para o gradiente.

colorAcabamento
[dentro] A cor final para o gradiente.

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

nStartFlatPercentage
[dentro] A percentagem do retângulo que FillGradient se preenche com colorStart antes de começar o gradiente.

nEndFlatPercentage
[dentro] A percentagem do retângulo que FillGradient se enche com colorFinish depois de terminar o gradiente.

Example

O exemplo seguinte demonstra como usar o FillGradient método da CDrawingManager classe. Este excerto 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

retângulo
[dentro] A área retangular para preencher.

colorStart
[dentro] A primeira cor do gradiente.

colorAcabamento
[dentro] A última cor do gradiente.

nÂngulo
[dentro] Um inteiro entre 0 e 360. Este parâmetro especifica a direção do gradiente de cor.

Observações

Use nAngle para especificar a direção do gradiente de cor. Quando especificas a direção do gradiente de cor, também especificas onde começa o gradiente de cor. Um valor de 0 para nAngle indica que o gradiente começa no topo do retângulo. À medida que o nAngle aumenta, a localização inicial do gradiente move-se no sentido contrário aos ponteiros do relógio, consoante o ângulo.

Example

O exemplo seguinte demonstra como usar o FillGradient2 método da CDrawingManager classe. Este excerto de código faz parte do exemplo de Novos Controlos.

// 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 uma cor cinzenta especificada.

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

Parâmetros

retângulo
[dentro] A área retangular para preencher.

nPercentagem
[dentro] A percentagem de cinzento que queres no retângulo.

clrTransparent
[dentro] A cor transparente.

clrDisabled
[dentro] A cor que este método usa para dessaturação, se nPercentage , está definida para -1.

Valor de retorno

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

Observações

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

O valor máximo para nPercentagem é 200. Um valor superior a 200 não altera a aparência do retângulo. Se o valor for -1, este método usa clrDisabled para limitar a saturação do retângulo.

CDrawingManager::HighlightRect

Destaca uma área retangular.

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

Parâmetros

retângulo
[dentro] Uma área retangular para destacar.

nPercentagem
[dentro] Uma percentagem que indica quão transparente deve ser o destaque.

clrTransparent
[dentro] A cor transparente.

nTolerância
[dentro] Um inteiro entre 0 e 255 que indica a tolerância à cor.

clrBlend
[dentro] A cor base para a mistura.

Valor de retorno

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

Observações

Se nPercentagem estiver entre 0 e 99, HighlightRect usa o algoritmo de mistura alfa. Para mais informações sobre a mistura alfa, consulte Linhas e Preenchimentos de Mistura Alfa. Se nPercentage for -1, este método usa o nível de destaque padrão. Se nPercentagem for 100, este método não faz nada e retorna VERDADEIRO.

O método utiliza o parâmetro nTolerance para determinar se destaca a área retangular. Para realçar o retângulo, a diferença entre a cor de fundo da sua aplicação e clrTransparent deve ser inferior à nTolerância em cada componente de cor (vermelho, verde e azul).

CDrawingManager::HLStoRGB_ONE

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

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

Parâmetros

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

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

S
[dentro] 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.

Observações

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 mais informações sobre as diferentes representações da cor, veja Cor.

Este método e o CDrawingManager::HLStoRGB_TWO método realizam a mesma operação, mas requerem valores diferentes para o parâmetro H . Neste método, H é uma percentagem do círculo. No CDrawingManager::HLStoRGB_TWO método, H é um valor de grau entre 0 e 360, ambos representando 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 uma representação HLS para uma representação RGB.

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

Parâmetros

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

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

S
[dentro] 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.

Observações

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 mais informações sobre as diferentes representações da cor, veja Cor.

Este método e o método CDrawingManager::HLStoRGB_ONE realizam a mesma operação, mas requerem valores diferentes para o parâmetro H . Neste método, H é um valor de grau entre 0 e 360, ambos representando vermelho. No método CDrawingManager::HLStoRGB_ONE , H é uma percentagem 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 uma representação HSV para uma representação RGB.

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

Parâmetros

H
[dentro] Um número entre 0 e 360 que indica o tom da cor.

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

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

Valor de retorno

A representação RGB da cor HSV fornecida.

Observações

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 mais informações sobre as diferentes representações da cor, veja Cor.

CDrawingManager::HuetoRGB

Converte um valor de matiz para 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
[dentro] Ver Observações.

M2
[dentro] Ver Observações.

h
[dentro] Ver Observações.

RM1
[dentro] Ver Observações.

RM2
[dentro] Ver Observações.

rh
[dentro] Ver Observações.

Valor de retorno

O componente vermelho, verde ou azul individual para a tonalidade fornecida.

Observações

Este método é um método auxiliar que a CDrawingManager classe utiliza para calcular os componentes individuais vermelho, verde e azul de uma cor numa representação HSV ou HSL. Este método não foi concebido 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 para uma representação RGB, chame um dos seguintes métodos:

CDrawingManager::MirrorRect

Vira uma área retangular.

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

Parâmetros

retângulo
[dentro] O retângulo delimitador da área a inverter.

bHorz
[dentro] Um parâmetro booleano que indica se o retângulo vira horizontal ou verticalmente.

Observações

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

CDrawingManager::P ixelAlpha

Calcula a cor final para 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
[dentro] A cor inicial do pixel.

por cento
[dentro] Um número entre 0 e 100 que representa a percentagem de transparência. Um valor de 100 indica que a cor inicial é completamente transparente.

percentR
[dentro] Um número entre 0 e 100 que representa a percentagem de transparência para o componente vermelho.

percentG
[dentro] Um número entre 0 e 100 que representa a percentagem de transparência para o componente verde.

percentB
[dentro] Um número entre 0 e 100 que representa a percentagem de transparência para o componente azul.

dstPixel
[dentro] A cor base do pixel.

Valor de retorno

A cor final para o pixel semitransparente.

Observações

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

Quando usas 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 do dstPixel.

CDrawingManager::P repareShadowMask

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

nProfundidade
[dentro] A largura e altura da sombra.

clrBase
[dentro] A cor da sombra.

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

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

Valor de retorno

Um handle para o bitmap criado se este método for bem-sucedido; caso contrário, NULL.

Observações

Se nDepth estiver definido para 0, este método sai e devolve NULL. Se a nProfundidade for inferior a 3, a largura e altura da sombra são definidas para 3 píxeis.

CDrawingManager::RGBtoHSL

Converte uma cor de uma representação vermelha, verde e azul (RGB) para uma representação de matiz, saturação e clareza (HSL).

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

Parâmetros

RGB
[dentro] A cor em valores RGB.

H
[fora] Um apontador para um duplo onde o método armazena o matiz da cor.

S
[fora] Um apontador para um duplo onde o método armazena a saturação da cor.

L
[fora] Um apontador para um duplo onde o método armazena a luminosidade da cor.

Observações

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 mais informações sobre as diferentes representações da cor, veja Cor.

O valor devolvido para H é representado como uma fração entre 0 e 1, onde tanto 0 como 1 representam o vermelho. Os valores devolvidos para S e L são números entre 0 e 1.

CDrawingManager::RGBtoHSV

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

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

Parâmetros

RGB
[dentro] A cor a converter numa representação RGB.

H
[fora] Um apontador para um duplo onde este método armazena o tom resultante para a cor.

S
[fora] Um apontador para um duplo onde este método armazena a saturação resultante para a cor.

V
[fora] Um apontador para um duplo onde este método armazena o valor resultante para a cor.

Observações

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 mais informações sobre as diferentes representações da cor, veja Cor.

O valor devolvido para H é um número entre 0 e 360, onde tanto 0 como 360 indicam vermelho. Os valores de retorno para S e V são números entre 0 e 1.

CDrawingManager::SetAlphaPixel

Colorem um pixel transparente num 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
[dentro] Um apontador para os valores dos bits do bitmap.

retângulo
[dentro] Uma área retangular na sua candidatura. O responsável pelo desenho desenha uma sombra por baixo e à direita desta área.

x
[dentro] A coordenada horizontal do píxel para a cor.

y
[dentro] A coordenada vertical do píxel para a cor.

por cento
[dentro] A percentagem de transparência.

iShadowSize
[dentro] A largura e altura da sombra.

clrBase
[dentro] A cor da sombra.

bIsRight
[dentro] Um parâmetro booleano que indica qual pixel colorir. Consulte a seção Comentários para obter mais informações.

Observações

Este método é um método auxiliar utilizado pelo método CDrawingManager::D rawShadow . Recomendamos que, se quiser desenhar uma sombra, ligue CDrawingManager::DrawShadow em vez disso.

Se bIsRight estiver definido como TRUE, o pixel para a cor é medido x píxeis a partir da extremidade direita de rect. Se for FALSO, o píxel para a cor é medido x píxeis a partir da extremidade esquerda do recto.

CDrawingManager::SetPixel

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

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

Parâmetros

pBits
[dentro] Um apontador para os valores dos bits do bitmap.

CX
[dentro] A largura total do bitmap.

cy
[dentro] A altura total do bitmap.

x
[dentro] A coordenada x do píxel no bitmap a mudar.

y
[dentro] A coordenada y do píxel no bitmap para mudar.

cor
[dentro] A nova cor do pixel identificada pelas coordenadas fornecidas.

Gestor do CDrawing::SmartMixColors

Combina duas cores com base numa razão ponderada.

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

Parâmetros

cor1
[dentro] A primeira cor a misturar.

Color2
[dentro] A segunda cor a misturar.

dblLumRatio
[dentro] A razão para a luminosidade da nova cor. SmartMixColors multiplica a luminosidade da cor misturada por esta razão antes de determinar a cor final.

K1
[dentro] A razão ponderada para a primeira cor.

K2
[dentro] A razão ponderada para a segunda cor.

Valor de retorno

Uma cor que representa uma mistura ponderada das cores fornecidas.

Observações

Este método falha com erro se k1 ou k2 for menor que zero. Se ambos os parâmetros estiverem definidos a 0, o método devolve RGB(0, 0, 0).

A razão ponderada é calculada com a seguinte fórmula: (cor1 * k1 + cor2 * k2)/(k1 + k2). Depois de determinar a razão ponderada, o método calcula a luminosidade para a cor mista. Depois multiplica a luminosidade por dblLumRatio. Se o valor for superior a 1,0, o método define a luminosidade da cor mista para o novo valor. Caso contrário, a luminosidade é definida para 1.0.

CDrawingGerente::D rawRotated

Roda um conteúdo DC de origem dentro do retângulo dado 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 rotação +90 graus; FALSE indica rotação -90 graus.

Observações

Consulte também

Gráfico de Hierarquia
Classes