Klasa CDrawingManager
Klasa CDrawingManager
implementuje złożone algorytmy rysowania.
Składnia
class CDrawingManager : public CObject
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CDrawingManager::CDrawingManager | CDrawingManager Tworzy obiekt. |
CDrawingManager::~CDrawingManager |
Destruktor. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CDrawingManager::CreateBitmap_32 | Tworzy 32-bitową niezależnie od urządzenia mapę bitową (DIB), którą aplikacje mogą zapisywać bezpośrednio. |
CDrawingManager::D rawAlpha | Wyświetla mapy bitowe, które mają przezroczyste lub półprzezroczyste piksele. |
CDrawingManager::D rawRotated | Obraca źródłową zawartość kontrolera domeny wewnątrz danego prostokąta o +/- 90 stopni |
CDrawingManager::D rawEllipse | Rysuje wielokropek z podanymi kolorami wypełnienia i obramowania. |
CDrawingManager::D rawGradientRing | Rysuje pierścień i wypełnia go gradientem kolorów. |
CDrawingManager::D rawLine, CDrawingManager::D rawLineA | Rysuje linię. |
CDrawingManager::D rawRect | Rysuje prostokąt z podanymi kolorami wypełnienia i obramowania. |
CDrawingManager::D rawShadow | Rysuje cień dla prostokątnego obszaru. |
CDrawingManager::Fill4ColorsGradient | Wypełnia prostokątny obszar z dwoma gradientami kolorów. |
CDrawingManager::FillGradient | Wypełnia prostokątny obszar z określonym gradientem kolorów. |
CDrawingManager::FillGradient2 | Wypełnia prostokątny obszar z określonym gradientem kolorów. Określono również kierunek zmiany koloru gradientu. |
CDrawingManager::GrayRect | Wypełnia prostokąt określonym szarym kolorem. |
CDrawingManager::HighlightRect | Wyróżnia prostokątny obszar. |
CDrawingManager::HLStoRGB_ONE | Konwertuje kolor z reprezentacji HLS na reprezentację RGB. |
CDrawingManager::HLStoRGB_TWO | Konwertuje kolor z reprezentacji HLS na reprezentację RGB. |
CDrawingManager::HSVtoRGB | Konwertuje kolor z reprezentacji HSV na reprezentację RGB. |
CDrawingManager::HuetoRGB | Metoda pomocnika, która konwertuje wartość odcienia na czerwony, zielony lub niebieski składnik. |
CDrawingManager::MirrorRect | Przerzuca prostokątny obszar. |
CDrawingManager::P ixelAlpha | Metoda pomocnika określająca ostateczny kolor półprzezroczystego piksela. |
CDrawingManager::P repareShadowMask | Tworzy mapę bitową, która może być używana jako cień. |
CDrawingManager::RGBtoHSL | Konwertuje kolor z reprezentacji RGB na reprezentację HSL. |
CDrawingManager::RGBtoHSV | Konwertuje kolor z reprezentacji RGB na reprezentację HSV. |
CDrawingManager::SetAlphaPixel | Metoda pomocnika, która koloruje częściowo przezroczysty piksel w mapie bitowej. |
CDrawingManager::SetPixel | Metoda pomocnika, która zmienia pojedynczy piksel w mapie bitowej na określony kolor. |
CDrawingManager::SmartMixColors | Łączy dwa kolory na podstawie współczynnika ważonego. |
Uwagi
Klasa CDrawingManager
udostępnia funkcje cieni rysunkowych, gradientów kolorów i wyróżnionych prostokątów. Wykonuje również mieszanie alfa. Tej klasy można użyć do bezpośredniej zmiany interfejsu użytkownika aplikacji.
Hierarchia dziedziczenia
Obiekt CObject
CDrawingManager
Wymagania
Nagłówek: afxdrawmanager.h
CDrawingManager::CDrawingManager
Tworzy obiekt CDrawingManager.
CDrawingManager(CDC& dc);
Parametry
Dc
[in] Odwołanie do kontekstu urządzenia. Ten CDrawingManager
kontekst jest używany do rysowania.
CDrawingManager::CreateBitmap_32
Tworzy 32-bitową niezależnie od urządzenia mapę bitową (DIB), którą aplikacje mogą zapisywać bezpośrednio.
static HBITMAP __stdcall CreateBitmap_32(
const CSize& size,
void** pBits);
static HBITMAP __stdcall CreateBitmap_32(
HBITMAP bitmap,
COLORREF clrTransparent = -1);
Parametry
rozmiar
[in] Parametr CSize wskazujący rozmiar mapy bitowej.
Bity pBit
[out] Wskaźnik do wskaźnika danych, który odbiera lokalizację wartości bitowych DIB.
bitmapa
Uchwyt do oryginalnej mapy bitowej
clrTransparent
Wartość RGB określająca przezroczysty kolor oryginalnej mapy bitowej.
Wartość zwracana
Dojście do nowo utworzonej mapy bitowej DIB, jeśli ta metoda powiedzie się; w przeciwnym razie wartość NULL.
Uwagi
Aby uzyskać więcej informacji na temat tworzenia mapy bitowej DIB, zobacz CreateDIBSection.
CDrawingManager::D rawAlpha
Wyświetla mapy bitowe, które mają przezroczyste lub półprzezroczyste piksele.
void DrawAlpha(
CDC* pDstDC,
const CRect& rectDst,
CDC* pSrcDC,
const CRect& rectSrc);
Parametry
pDstDC
[in] Wskaźnik do kontekstu urządzenia dla miejsca docelowego.
rectDst
[in] Prostokąt docelowy.
pSrcDC
[in] Wskaźnik do kontekstu urządzenia dla źródła.
rectSrc
[in] Prostokąt źródłowy.
Uwagi
Ta metoda wykonuje mieszanie alfa dla dwóch map bitowych. Aby uzyskać więcej informacji na temat mieszania alfa, zobacz AlphaBlend w zestawie Windows SDK.
CDrawingManager::D rawEllipse
Rysuje wielokropek z podanymi kolorami wypełnienia i obramowania.
void DrawEllipse(
const CRect& rect,
COLORREF clrFill,
COLORREF clrLine);
Parametry
Rect
[in] Prostokąt ograniczenia wielokropka.
clrFill
[in] Kolor używany przez tę metodę do wypełnienia wielokropka.
clrLine
[in] Kolor, który ta metoda używa jako obramowania wielokropka.
Uwagi
Ta metoda zwraca wartość bez rysowania wielokropka, jeśli jeden kolor jest ustawiony na -1. Zwraca również bez rysowania wielokropka, jeśli jeden z wymiarów prostokąta ograniczenia wynosi 0.
CDrawingManager::D rawGradientRing
Rysuje pierścień i wypełnia go gradientem kolorów.
BOOL DrawGradientRing(
CRect rect,
COLORREF colorStart,
COLORREF colorFinish,
COLORREF colorBorder,
int nAngle,
int nWidth,
COLORREF clrFace = (COLORREF)-1);
Parametry
Rect
[in] Parametr CRect określający granicę pierścienia gradientowego.
colorStart
[in] Pierwszy kolor gradientu.
colorFinish
[in] Ostatni kolor gradientu.
colorBorder
[in] Kolor obramowania.
nAngle
[in] Parametr określający początkowy kąt rysunku gradientu. Ta wartość powinna należeć do zakresu od 0 do 360.
nWidth
[in] Szerokość obramowania pierścienia.
clrFace
[in] Kolor wnętrza pierścienia.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Prostokąt zdefiniowany przez rect musi mieć co najmniej 5 pikseli szerokości i 5 pikseli wysokości.
CDrawingManager::D rawLine, CDrawingManager::D rawLineA
Rysuje linię.
void DrawLine(
int x1,
int y1,
int x2,
int y2,
COLORREF clrLine);
void DrawLineA(
double x1,
double y1,
double x2,
double y2,
COLORREF clrLine);
Parametry
x1
[in] Współrzędna x, w której rozpoczyna się linia.
y1
[in] Współrzędna y, w której rozpoczyna się linia.
x2
[in] Współrzędna x, w której kończy się linia.
y2
[in] Współrzędna y, gdzie kończy się linia.
clrLine
[in] Kolor linii.
Uwagi
Ta metoda kończy się niepowodzeniem, jeśli clrLine równa -1.
CDrawingManager::D rawRect
Rysuje prostokąt z podanymi kolorami wypełnienia i obramowania.
void DrawRect(
const CRect& rect,
COLORREF clrFill,
COLORREF clrLine);
Parametry
Rect
[in] Granice prostokąta.
clrFill
[in] Kolor używany przez tę metodę do wypełnienia prostokąta.
clrLine
[in] Kolor używany przez tę metodę dla obramowania prostokąta.
Uwagi
Ta metoda zwraca wartość bez rysowania prostokąta, jeśli dowolny kolor jest ustawiony na -1. Zwraca również wartość , jeśli jeden z wymiarów prostokąta wynosi 0.
CDrawingManager::D rawShadow
Rysuje cień dla prostokątnego obszaru.
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);
Parametry
Rect
[in] Prostokątny obszar w aplikacji. Menedżer rysunku narysuje cień pod tym obszarem.
nDepth
[in] Szerokość i wysokość cienia.
iMinBrightness
[in] Minimalna jasność cienia.
iMaxBrightness
[in] Maksymalna jasność cienia.
pBmpSaveBottom
[in] Wskaźnik do mapy bitowej zawierającej obraz dolnej części cienia.
pBmpSaveRight
[in] Wskaźnik do mapy bitowej zawierającej obraz cienia rysowanego po prawej stronie prostokąta.
clrBase
[in] Kolor cienia.
bRightShadow
[in] Parametr logiczny wskazujący sposób rysowania cienia. Jeśli bRightShadow to TRUE
, DrawShadow
rysuje cień po prawej stronie prostokąta.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Możesz podać dwie prawidłowe mapy bitowe dla cieni dolnych i prawych, używając parametrów pBmpSaveBottom i pBmpSaveRight. Jeśli te obiekty CBitmap mają dołączony obiekt GDI, DrawShadow
użyje tych map bitowych jako cieni. CBitmap
Jeśli parametry nie mają dołączonego obiektu GDI, DrawShadow
rysuje cień i dołącza mapy bitowe do parametrów. W przyszłych wywołaniach programu DrawShadow
można udostępnić te mapy bitowe, aby przyspieszyć proces rysowania. Aby uzyskać więcej informacji na temat CBitmap
klas i obiektów GDI, zobacz Obiekty graficzne.
Jeśli którykolwiek z tych parametrów to NULL
, DrawShadow
automatycznie narysuje cień.
Jeśli ustawisz wartość bRightShadow na FAŁSZ, cień zostanie narysowany pod i z lewej strony prostokątnego obszaru.
Przykład
W poniższym przykładzie pokazano, jak używać DrawShadow
metody CDrawingManager
klasy . Ten fragment kodu jest częścią przykładu Pokaz arkusza prop.
// 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
Wypełnia prostokątny obszar z dwoma gradientami kolorów.
void Fill4ColorsGradient(
CRect rect,
COLORREF colorStart1,
COLORREF colorFinish1,
COLORREF colorStart2,
COLORREF colorFinish2,
BOOL bHorz = TRUE,
int nPercentage = 50);
Parametry
Rect
[in] Prostokąt do wypełnienia.
colorStart1
[in] Początkowy kolor pierwszego gradientu kolorów.
colorFinish1
[in] Ostateczny kolor pierwszego gradientu kolorów.
colorStart2
[in] Początkowy kolor drugiego gradientu kolorów.
colorFinish2
[in] Końcowy kolor drugiego gradientu kolorów.
bHorz
[in] Parametr logiczny wskazujący, czy Fill4ColorsGradient
kolory gradientu poziomego czy pionowego. Wartość TRUE wskazuje gradient poziomy.
nPercentage
[in] Liczba całkowita z zakresu od 0 do 100. Ta wartość wskazuje procent prostokąta do wypełnienia pierwszym gradientem kolorów.
Uwagi
Gdy prostokąt jest wypełniony dwoma gradientami kolorów, znajdują się one nad sobą lub obok siebie, w zależności od wartości bHorz. Każdy gradient kolorów jest obliczany niezależnie za pomocą metody CDrawingManager::FillGradient.
Ta metoda generuje błąd asercji, jeśli nPercentage jest mniejszy niż 0 lub więcej niż 100.
CDrawingManager::FillGradient
Wypełnia prostokątny obszar z określonym gradientem kolorów.
void FillGradient(
CRect rect,
COLORREF colorStart,
COLORREF colorFinish,
BOOL bHorz = TRUE,
int nStartFlatPercentage = 0,
int nEndFlatPercentage = 0);
Parametry
Rect
[in] Prostokątny obszar do wypełnienia.
colorStart
[in] Pierwszy kolor gradientu.
colorFinish
[in] Ostateczny kolor gradientu.
bHorz
[in] Parametr logiczny określający, czy FillGradient
ma być rysowany gradient poziomy, czy pionowy.
nStartFlatPercentage
[in] Procent prostokąta wypełnianego FillGradient
koloremStart przed rozpoczęciem gradientu.
nEndFlatPercentage
[in] Procent prostokąta wypełnianego FillGradient
koloremFinish po zakończeniu gradientu.
Przykład
W poniższym przykładzie pokazano, jak używać FillGradient
metody CDrawingManager
klasy . Ten fragment kodu jest częścią przykładu pokazowego pakietu MS Office 2007.
// CRect rectScreen
// CDrawingManager dm
dm.FillGradient(rectScreen, RGB(114, 125, 152), RGB(178, 185, 202), TRUE);
CDrawingManager::FillGradient2
Wypełnia prostokątny obszar z określonym gradientem kolorów.
void FillGradient2 (
CRect rect,
COLORREF colorStart,
COLORREF colorFinish,
int nAngle = 0);
Parametry
Rect
[in] Prostokątny obszar do wypełnienia.
colorStart
[in] Pierwszy kolor gradientu.
colorFinish
[in] Ostatni kolor gradientu.
nAngle
[in] Liczba całkowita z zakresu od 0 do 360. Ten parametr określa kierunek gradientu kolorów.
Uwagi
Użyj elementu nAngle , aby określić kierunek gradientu kolorów. Po określeniu kierunku gradientu kolorów należy również określić, gdzie rozpoczyna się gradient kolorów. Wartość 0 dla elementu nAngle wskazuje, że gradient zaczyna się od góry prostokąta. W miarę zwiększania się nAngle lokalizacja początkowa gradientu porusza się w kierunku odwrotnym do ruchu wskazówek zegara na podstawie kąta.
Przykład
W poniższym przykładzie pokazano, jak używać FillGradient2
metody CDrawingManager
klasy . Ten fragment kodu jest częścią przykładu Nowe kontrolki.
// 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
Wypełnia prostokąt określonym szarym kolorem.
BOOL GrayRect(
CRect rect,
int nPercentage = -1,
COLORREF clrTransparent = (COLORREF)-1,
COLORREF clrDisabled = (COLORREF)-1);
Parametry
Rect
[in] Prostokątny obszar do wypełnienia.
nPercentage
[in] Procent szarości, który ma być w prostokątze.
clrTransparent
[in] Przezroczysty kolor.
clrDisabled
[in] Kolor używany przez tę metodę do de-nasycenia, jeśli nPercentage jest ustawiona na -1.
Wartość zwracana
Wartość TRUE, jeśli metoda zakończyła się pomyślnie; w przeciwnym razie FAŁSZ.
Uwagi
Dla parametru nPercentage niższa wartość wskazuje ciemniejszy kolor.
Maksymalna wartość nPercentage wynosi 200. Wartość większa niż 200 nie zmienia wyglądu prostokąta. Jeśli wartość to -1, ta metoda używa klasy clrDisabled , aby ograniczyć nasycenie prostokąta.
CDrawingManager::HighlightRect
Wyróżnia prostokątny obszar.
BOOL HighlightRect(
CRect rect,
int nPercentage = -1,
COLORREF clrTransparent = (COLORREF)-1,
int nTolerance = 0,
COLORREF clrBlend = (COLORREF)-1);
Parametry
Rect
[in] Prostokątny obszar do wyróżnienia.
nPercentage
[in] Wartość procentowa wskazująca, jak powinno być przezroczyste wyróżnienie.
clrTransparent
[in] Przezroczysty kolor.
nTolerance
[in] Liczba całkowita z zakresu od 0 do 255 wskazująca tolerancję koloru.
clrBlend
[in] Kolor podstawowy do mieszania.
Wartość zwracana
Wartość TRUE, jeśli metoda zakończyła się pomyślnie; w przeciwnym razie FAŁSZ.
Uwagi
Jeśli parametr nPercentage wynosi od 0 do 99, HighlightRect
używa algorytmu mieszania alfa. Aby uzyskać więcej informacji na temat mieszania alfa, zobacz Alfa Blending Lines and Fills (Linie i wypełnienia alfa). Jeśli parametr nPercentage ma wartość -1, ta metoda używa domyślnego poziomu wyróżnienia. Jeśli parametr nPercentage ma wartość 100, ta metoda nic nie robi i zwraca wartość TRUE.
Metoda używa parametru nTolerance , aby określić, czy wyróżnić prostokątny obszar. Aby wyróżnić prostokąt, różnica między kolorem tła aplikacji a clrTransparent musi być mniejsza niż nTolerance w każdym składniku kolorów (czerwony, zielony i niebieski).
CDrawingManager::HLStoRGB_ONE
Konwertuje kolor z reprezentacji HLS na reprezentację RGB.
static COLORREF __stdcall HLStoRGB_ONE(
double H,
double L,
double S);
Parametry
H
[in] Liczba z zakresu od 0 do 1, która reprezentuje kolor.
L
[in] Liczba z zakresu od 0 do 1, która wskazuje jasność koloru.
S
[in] Liczba z zakresu od 0 do 1, która wskazuje nasycenie koloru.
Wartość zwracana
Reprezentacja RGB dostarczonego koloru HLS.
Uwagi
Kolor może być reprezentowany jako HSV (hue, nasycenie i wartość), HSL (hue, nasycenie i jasność) lub RGB (czerwony, zielony i niebieski). Aby uzyskać więcej informacji na temat różnych reprezentacji koloru, zobacz Kolor.
Ta metoda i CDrawingManager::HLStoRGB_TWO
metoda wykonują tę samą operację, ale wymagają różnych wartości parametru H . W tej metodzie H jest procentem okręgu. W metodzie CDrawingManager::HLStoRGB_TWO
H jest wartością stopnia z zakresu od 0 do 360, która reprezentuje kolor czerwony. Na przykład wartość HLStoRGB_ONE
0,25 dla H jest równoważna wartości 90 z wartością HLStoRGB_TWO
.
CDrawingManager::HLStoRGB_TWO
Konwertuje kolor z reprezentacji HLS na reprezentację RGB.
static COLORREF __stdcall HLStoRGB_TWO(
double H,
double L,
double S);
Parametry
H
[in] Liczba z zakresu od 0 do 360 reprezentująca odcienie koloru.
L
[in] Liczba z zakresu od 0 do 1, która wskazuje jasność koloru.
S
[in] Liczba z zakresu od 0 do 1, która wskazuje nasycenie koloru.
Wartość zwracana
Reprezentacja RGB dostarczonego koloru HLS.
Uwagi
Kolor może być reprezentowany jako HSV (hue, nasycenie i wartość), HSL (hue, nasycenie i jasność) lub RGB (czerwony, zielony i niebieski). Aby uzyskać więcej informacji na temat różnych reprezentacji koloru, zobacz Kolor.
Ta metoda i metoda CDrawingManager::HLStoRGB_ONE wykonują tę samą operację, ale wymagają różnych wartości parametru H . W tej metodzie H jest wartością stopnia z zakresu od 0 do 360, która reprezentuje kolor czerwony. W metodzie CDrawingManager::HLStoRGB_ONE wartość procentowa okręgu. Na przykład wartość HLStoRGB_ONE
0,25 dla H jest równoważna wartości 90 z wartością HLStoRGB_TWO
.
CDrawingManager::HSVtoRGB
Konwertuje kolor z reprezentacji HSV na reprezentację RGB.
static COLORREF __stdcall HSVtoRGB(
double H,
double S,
double V);
Parametry
H
[in] Liczba z zakresu od 0 do 360 wskazująca odcienie koloru.
S
[in] Liczba z zakresu od 0 do 1, która wskazuje nasycenie koloru.
V
[in] Liczba z zakresu od 0 do 1 wskazująca wartość koloru.
Wartość zwracana
Reprezentacja RGB dostarczonego koloru HSV.
Uwagi
Kolor może być reprezentowany jako HSV (hue, nasycenie i wartość), HSL (hue, nasycenie i jasność) lub RGB (czerwony, zielony i niebieski). Aby uzyskać więcej informacji na temat różnych reprezentacji koloru, zobacz Kolor.
CDrawingManager::HuetoRGB
Konwertuje wartość odcienia na czerwony, zielony lub niebieski składnik.
static double __stdcall HuetoRGB(
double m1,
double m2,
double h);
static BYTE __stdcall HueToRGB(
float rm1,
float rm2,
float rh);
Parametry
m1
[in] Zobacz uwagi.
m2
[in] Zobacz uwagi.
h
[in] Zobacz uwagi.
rm1
[in] Zobacz uwagi.
rm2
[in] Zobacz uwagi.
Rh
[in] Zobacz uwagi.
Wartość zwracana
Pojedynczy czerwony, zielony lub niebieski składnik dla podanego odcienia.
Uwagi
Ta metoda jest metodą pomocnika używaną CDrawingManager
przez klasę do obliczenia poszczególnych czerwonych, zielonych i niebieskich składników koloru w reprezentacji HSV lub HSL. Ta metoda nie jest przeznaczona do wywoływana bezpośrednio przez programistę. Parametry wejściowe to wartości, które zależą od algorytmu konwersji.
Aby przekonwertować kolor HSV lub HSL na reprezentację RGB, wywołaj jedną z następujących metod:
CDrawingManager::MirrorRect
Przerzuca prostokątny obszar.
void MirrorRect(
CRect rect,
BOOL bHorz = TRUE);
Parametry
Rect
[in] Prostokąt ograniczenia obszaru do przerzucania.
bHorz
[in] Parametr logiczny wskazujący, czy prostokąt przerzuca się w poziomie lub w pionie.
Uwagi
Ta metoda może przerzucić dowolny obszar kontekstu urządzenia należącego CDrawingManager
do klasy. Jeśli parametr bHorz ma wartość TRUE, ta metoda przerzuca obszar w poziomie. W przeciwnym razie przerzuca obszar w pionie.
CDrawingManager::P ixelAlpha
Oblicza ostateczny kolor półprzezroczystego piksela.
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);
Parametry
srcPixel
[in] Początkowy kolor piksela.
procent
[in] Liczba z zakresu od 0 do 100, która reprezentuje procent przejrzystości. Wartość 100 wskazuje, że początkowy kolor jest całkowicie przezroczysty.
percentR
[in] Liczba z zakresu od 0 do 100, która reprezentuje procent przezroczystości dla czerwonego składnika.
percentG
[in] Liczba z zakresu od 0 do 100, która reprezentuje procent przezroczystości dla zielonego składnika.
percentB
[in] Liczba z zakresu od 0 do 100, która reprezentuje procent przezroczystości dla niebieskiego składnika.
dstPixel
[in] Kolor podstawowy dla piksela.
Wartość zwracana
Końcowy kolor półprzezroczystego piksela.
Uwagi
Jest to klasa pomocnika do kolorowania półprzezroczystych map bitowych i nie jest przeznaczona do wywoływana bezpośrednio przez programistę.
Jeśli używasz wersji metody, która ma dstPixel, ostateczny kolor jest kombinacją dstPixel i srcPixel. Kolor srcPixel jest częściowo przezroczysty kolor na kolor podstawowy dstPixel.
CDrawingManager::P repareShadowMask
Tworzy mapę bitową, która może być używana jako cień.
static HBITMAP __stdcall PrepareShadowMask (
int nDepth,
COLORREF clrBase,
int iMinBrightness = 0,
int iMaxBrightness = 100);
Parametry
nDepth
[in] Szerokość i wysokość cienia.
clrBase
[in] Kolor cienia.
iMinBrightness
[in] Minimalna jasność cienia.
iMaxBrightness
[in] Maksymalna jasność cienia.
Wartość zwracana
Dojście do utworzonej mapy bitowej, jeśli ta metoda zakończy się pomyślnie; w przeciwnym razie wartość NULL.
Uwagi
Jeśli parametr nDepth ma wartość 0, ta metoda kończy działanie i zwraca wartość NULL. Jeśli wartość nDepth jest mniejsza niż 3, szerokość i wysokość cienia są ustawione na 3 piksele.
CDrawingManager::RGBtoHSL
Konwertuje kolor z reprezentacji czerwonej, zielonej i niebieskiej (RGB) na reprezentację odcienia, nasycenia i lekkości (HSL).
static void __stdcall RGBtoHSL(
COLORREF rgb,
double* H,
double* S,
double* L);
Parametry
Rgb
[in] Kolor w wartościach RGB.
H
[out] Wskaźnik do podwójnego miejsca, w którym metoda przechowuje odcienie koloru.
S
[out] Wskaźnik do podwójnego miejsca, w którym metoda przechowuje nasycenie koloru.
L
[out] Wskaźnik do podwójnego miejsca, w którym metoda przechowuje lekkość koloru.
Uwagi
Kolor może być reprezentowany jako HSV (hue, nasycenie i wartość), HSL (hue, nasycenie i jasność) lub RGB (czerwony, zielony i niebieski). Aby uzyskać więcej informacji na temat różnych reprezentacji koloru, zobacz Kolor.
Zwracana wartość H jest reprezentowana jako ułamek z zakresu od 0 do 1, gdzie wartości 0 i 1 reprezentują kolor czerwony. Zwracane wartości dla wartości S i L to liczby z zakresu od 0 do 1.
CDrawingManager::RGBtoHSV
Konwertuje kolor z reprezentacji RGB na reprezentację HSV.
static void __stdcall RGBtoHSV(
COLORREF rgb,
double* H,
double* S,
double* V);
Parametry
Rgb
[in] Kolor do konwersji w reprezentacji RGB.
H
[out] Wskaźnik do podwójnego miejsca, w którym ta metoda przechowuje wynikowy odcień koloru.
S
[out] Wskaźnik do podwójnego miejsca, w którym ta metoda przechowuje wynikowe nasycenie koloru.
V
[out] Wskaźnik do podwójnego miejsca, w którym ta metoda przechowuje wynikową wartość koloru.
Uwagi
Kolor może być reprezentowany jako HSV (hue, nasycenie i wartość), HSL (hue, nasycenie i jasność) lub RGB (czerwony, zielony i niebieski). Aby uzyskać więcej informacji na temat różnych reprezentacji koloru, zobacz Kolor.
Zwracana wartość H jest liczbą z zakresu od 0 do 360, gdzie zarówno 0, jak i 360 wskazują kolor czerwony. Wartości zwracane dla S i V to liczby z zakresu od 0 do 1.
CDrawingManager::SetAlphaPixel
Kolory przezroczystego piksela w mapie bitowej.
static void __stdcall SetAlphaPixel(
COLORREF* pBits,
CRect rect,
int x,
int y,
int percent,
int iShadowSize,
COLORREF clrBase = (COLORREF)-1,
BOOL bIsRight = TRUE);
Parametry
Bity pBit
[in] Wskaźnik do wartości bitowych mapy bitowej.
Rect
[in] Prostokątny obszar w aplikacji. Menedżer rysunku rysuje cień pod spodem i z prawej strony tego obszaru.
x
[in] Współrzędna pozioma piksela do koloru.
y
[in] Współrzędna pionowa piksela do koloru.
procent
[in] Procent przejrzystości.
iShadowSize
[in] Szerokość i wysokość cienia.
clrBase
[in] Kolor cienia.
bIsRight
[in] Parametr logiczny wskazujący, który piksel ma być kolorowy. Zobacz sekcję Spostrzeżenia, aby uzyskać więcej informacji.
Uwagi
Ta metoda jest metodą pomocnika używaną przez metodę CDrawingManager::D rawShadow . Zalecamy, aby jeśli chcesz narysować cień, wywołaj zamiast tego.CDrawingManager::DrawShadow
Jeśli wartość bIsRight jest ustawiona na wartość TRUE, piksel do koloru jest mierzony x pikseli z prawej krawędzi rect. Jeśli jest to FAŁSZ, piksel do koloru jest mierzony x pikseli z lewej krawędzi rect.
CDrawingManager::SetPixel
Zmienia pojedynczy piksel w mapie bitowej na określony kolor.
static void __stdcall SetPixel(
COLORREF* pBits,
int cx,
int cy,
int x,
int y,
COLORREF color);
Parametry
Bity pBit
[in] Wskaźnik do wartości bitowych mapy bitowej.
cx
[in] Całkowita szerokość mapy bitowej.
Cy
[in] Całkowita wysokość mapy bitowej.
x
[in] Współrzędna x piksela na mapie bitowej, która ma ulec zmianie.
y
[in] Współrzędna y piksela na mapie bitowej, która ma ulec zmianie.
Kolor
[in] Nowy kolor piksela zidentyfikowany przez podane współrzędne.
CDrawingManager::SmartMixColors
Łączy dwa kolory na podstawie współczynnika ważonego.
static COLORREF __stdcall SmartMixColors(
COLORREF color1,
COLORREF color2,
double dblLumRatio = 1.,
int k1 = 1,
int k2 = 1);
Parametry
color1
[in] Pierwszy kolor do wymieszania.
color2
[in] Drugi kolor do wymieszania.
dblLumRatio
[in] Współczynnik jasności nowego koloru. SmartMixColors
mnoży świetlistość koloru mieszanego przez ten współczynnik przed określeniem koloru końcowego.
k1
[in] Współczynnik ważony dla pierwszego koloru.
k2
[in] Współczynnik ważony dla drugiego koloru.
Wartość zwracana
Kolor reprezentujący ważoną mieszankę podanych kolorów.
Uwagi
Ta metoda kończy się niepowodzeniem z powodu błędu, jeśli k1 lub k2 jest mniejszy niż zero. Jeśli oba te parametry są ustawione na 0, metoda zwraca RGB(0, 0, 0)
wartość .
Współczynnik ważony jest obliczany przy użyciu następującej formuły: (kolor1 * k1 + kolor2 * k2)/(k1 + k2). Po ustaleniu współczynnika ważonego metoda oblicza jasność dla koloru mieszanego. Następnie mnoży jasność przez dblLumRatio. Jeśli wartość jest większa niż 1,0, metoda ustawia jasność dla koloru mieszanego na nową wartość. W przeciwnym razie jasność jest ustawiona na 1,0.
CDrawingManager::D rawRotated
Obraca źródłową zawartość kontrolera domeny wewnątrz danego prostokąta o 90 stopni.
void DrawRotated(
CRect rectDest,
CDC& dcSrc,
BOOL bClockWise);
Parametry
rectDest
Prostokąt docelowy.
dcSrc
Kontekst urządzenia źródłowego.
bClockWise
Wartość TRUE wskazuje obróć +90 stopni; FAŁSZ wskazuje obróć -90 stopni.