Klasa CDrawingManager

Klasa CDrawingManager implementuje złożone algorytmy rysowania.

Składnia

class CDrawingManager : public CObject

Członkowie

Konstruktory publiczne

Nazwa/nazwisko opis
CDrawingManager::CDrawingManager CDrawingManager Tworzy obiekt.
CDrawingManager::~CDrawingManager Destruktora.

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

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.

Bitmapy
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 DrawShadowmoż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_TWOH jest wartością stopnia z zakresu od 0 do 360, która reprezentuje kolor czerwony. Na przykład wartość HLStoRGB_ONE0,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_ONE0,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.

Uwagi

Zobacz też

Wykres hierarchii
Klasy