Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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.