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.