Sdílet prostřednictvím


CDrawingManager – třída

Třída CDrawingManager implementuje složité algoritmy kreslení.

Syntaxe

class CDrawingManager : public CObject

Členové

Veřejné konstruktory

Jméno popis
CDrawingManager::CDrawingManager CDrawingManager Vytvoří objekt.
CDrawingManager::~CDrawingManager Destruktor.

Veřejné metody

Jméno popis
CDrawingManager::CreateBitmap_32 Vytvoří 32bitový rastrový obrázek nezávislý na zařízení (DIB), do kterého mohou aplikace zapisovat přímo.
CDrawingManager::D rawAlpha Zobrazí rastrové obrázky, které mají průhledné nebo poloprůhledné pixely.
CDrawingManager::D rawRotated Otočí zdrojový obsah řadiče domény uvnitř daného obdélníku o +/- 90 stupňů.
CDrawingManager::D rawEllipse Nakreslí tři tečky se zadanými barvami výplně a ohraničení.
CDrawingManager::D rawGradientRing Nakreslí prstenec a vyplní ho barevným přechodem.
CDrawingManager::D rawLine, CDrawingManager::D rawLineA Nakreslí čáru.
CDrawingManager::D rawRect Nakreslí obdélník se zadanými barvami výplně a ohraničení.
CDrawingManager::D rawShadow Nakreslí stín pro obdélníkovou oblast.
CDrawingManager::Fill4ColorsGradient Vyplní obdélníkovou oblast dvěma barevnými přechody.
CDrawingManager::FillGradient Vyplní obdélníkovou oblast zadaným barevným přechodem.
CDrawingManager::FillGradient2 Vyplní obdélníkovou oblast zadaným barevným přechodem. Určuje se také směr změny barvy přechodu.
CDrawingManager::GrayRect Vyplní obdélník zadanou šedou barvou.
CDrawingManager::HighlightRect Zvýrazní obdélníkovou oblast.
CDrawingManager::HLStoRGB_ONE Převede barvu z reprezentace HLS na reprezentaci RGB.
CDrawingManager::HLStoRGB_TWO Převede barvu z reprezentace HLS na reprezentaci RGB.
CDrawingManager::HSVtoRGB Převede barvu z reprezentace HSV na reprezentaci RGB.
CDrawingManager::HuetoRGB Pomocná metoda, která převede hodnotu odstínu na červenou, zelenou nebo modrou komponentu.
CDrawingManager::MirrorRect Překlopí obdélníkovou oblast.
CDrawingManager::P ixelAlpha Pomocná metoda, která určuje konečnou barvu pro poloprůhledný pixel.
CDrawingManager::P repareShadowMask Vytvoří rastrový obrázek, který lze použít jako stín.
CDrawingManager::RGBtoHSL Převede barvu z reprezentace RGB na reprezentaci HSL.
CDrawingManager::RGBtoHSV Převede barvu z reprezentace RGB na reprezentaci HSV.
CDrawingManager::SetAlphaPixel Pomocná metoda, která v rastrovém obrázku vybarví částečně průhledný pixel.
CDrawingManager::SetPixel Pomocná metoda, která změní jeden pixel v rastrovém obrázku na zadanou barvu.
CDrawingManager::SmartMixColors Kombinuje dvě barvy na základě váženého poměru.

Poznámky

Třída CDrawingManager poskytuje funkce pro kreslení stínů, barevných přechodů a zvýrazněných obdélníků. Provádí také alfa-blending. Tuto třídu můžete použít k přímé změně uživatelského rozhraní aplikace.

Hierarchie dědičnosti

Objekt CObject
CDrawingManager

Požadavky

Záhlaví: afxdrawmanager.h

CDrawingManager::CDrawingManager

Vytvoří objekt CDrawingManager.

CDrawingManager(CDC& dc);

Parametry

Dc
[v] Odkaz na kontext zařízení Tento CDrawingManager kontext se používá pro kreslení.

CDrawingManager::CreateBitmap_32

Vytvoří 32bitový rastrový obrázek nezávislý na zařízení (DIB), do kterého mohou aplikace zapisovat přímo.

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

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

Parametry

Velikost
[v] Parametr CSize , který označuje velikost rastrového obrázku.

pBits
[ven] Ukazatel na datový ukazatel, který přijímá umístění bitových hodnot DIB.

Bitmapové
Úchyt původního rastrového obrázku

clrTransparent
Hodnota RGB určující průhlednou barvu původního rastrového obrázku.

Vrácená hodnota

Popisovač nově vytvořeného rastrového obrázku DIB, pokud je tato metoda úspěšná; jinak NULL.

Poznámky

Další informace o vytvoření rastrového obrázku DIB naleznete v tématu CreateDIBSection.

CDrawingManager::D rawAlpha

Zobrazí rastrové obrázky, které mají průhledné nebo poloprůhledné pixely.

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

Parametry

pDstDC
[v] Ukazatel na kontext zařízení pro cíl.

rectDst
[v] Cílový obdélník.

pSrcDC
[v] Ukazatel na kontext zařízení pro zdroj.

rectSrc
[v] Zdrojový obdélník.

Poznámky

Tato metoda provádí alfa-blending pro dva rastrové obrázky. Další informace o alfa-blending, viz AlphaBlend v sadě Windows SDK.

CDrawingManager::D rawEllipse

Nakreslí tři tečky se zadanými barvami výplně a ohraničení.

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

Parametry

Rect
[v] Ohraničující obdélník pro tři tečky.

clrFill
[v] Barva, pomocí které tato metoda vyplní tři tečky.

clrLine
[v] Barva této metody se používá jako ohraničení tří teček.

Poznámky

Tato metoda vrátí bez vykreslení tří teček, pokud je obě barvy nastaveny na -1. Vrátí se také bez vykreslení tří teček, pokud je jedna z dimenzí ohraničujícího obdélníku 0.

CDrawingManager::D rawGradientRing

Nakreslí prstenec a vyplní ho barevným přechodem.

BOOL DrawGradientRing(
    CRect rect,
    COLORREF colorStart,
    COLORREF colorFinish,
    COLORREF colorBorder,
    int nAngle,
    int nWidth,
    COLORREF clrFace = (COLORREF)-1);

Parametry

Rect
[v] Parametr CRect , který určuje hranici pro přechodový prstenec.

colorStart
[v] První barva přechodu.

colorFinish
[v] Poslední barva přechodu

colorBorder
[v] Barva ohraničení.

nAngle
[v] Parametr, který určuje počáteční úhel výkresu přechodu. Tato hodnota by měla být v rozmezí od 0 do 360.

nWidth
[v] Šířka ohraničení prstence.

clrFace
[v] Barva interiéru prstenu.

Vrácená hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Obdélník definovaný rect musí být nejméně 5 pixelů široký a 5 pixelů vysoký.

CDrawingManager::D rawLine, CDrawingManager::D rawLineA

Nakreslí čáru.

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
[v] Souřadnice x, kde začíná čára.

y1
[v] Souřadnice y, kde začíná čára.

x2
[v] Souřadnice x, kde čára končí.

y2
[v] Souřadnice y, kde čára končí.

clrLine
[v] Barva čáry.

Poznámky

Tato metoda selže, pokud se clrLine rovná -1.

CDrawingManager::D rawRect

Nakreslí obdélník se zadanými barvami výplně a ohraničení.

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

Parametry

Rect
[v] Hranice obdélníku.

clrFill
[v] Barva, která tato metoda používá k vyplnění obdélníku.

clrLine
[v] Barva, která tato metoda používá pro ohraničení obdélníku.

Poznámky

Tato metoda vrátí bez vykreslení obdélníku, pokud je některý z barev nastaven na -1. Vrátí se také v případě, že je některý z dimenzí obdélníku 0.

CDrawingManager::D rawShadow

Nakreslí stín pro obdélníkovou oblast.

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
[v] Obdélníková oblast v aplikaci. Nadřízený výkresu nakreslí stín pod touto oblastí.

nDepth
[v] Šířka a výška stínu.

iMinBrightness
[v] Minimální jas stínu.

iMaxBrightness
[v] Maximální jas stínu.

pBmpSaveBottom
[v] Ukazatel na rastrový obrázek, který obsahuje obrázek pro dolní část stínu.

pBmpSaveRight
[v] Ukazatel na rastrový obrázek, který obsahuje obrázek pro stín nakreslený na pravé straně obdélníku.

clrBase
[v] Barva stínu.

bRightShadow
[v] Logický parametr, který označuje, jak je stín vykreslen. Pokud bRightShadow je TRUE, DrawShadow nakreslí stín na pravé straně obdélníku.

Vrácená hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Pomocí parametrů pBmpSaveBottom a pBmpSaveRight můžete zadat dva platné rastrové obrázky pro dolní a pravé stíny. Pokud mají tyto objekty CBitmap připojený objekt GDI, DrawShadow použije tyto rastrové obrázky jako stíny. CBitmap Pokud parametry nemají připojený objekt GDI, DrawShadow nakreslí stín a připojí rastrové obrázky k parametrům. V budoucích voláních DrawShadowmůžete poskytnout tyto rastrové obrázky, které urychlí proces kreslení. Další informace o CBitmap třídách a objektech GDI naleznete v tématu Grafické objekty.

Pokud je NULLněkterý z těchto parametrů , DrawShadow automaticky nakreslí stín.

Pokud nastavíte bRightShadow na FALSE, stín bude vykreslen pod a vlevo od obdélníkové oblasti.

Příklad

Následující příklad ukazuje, jak použít DrawShadow metodu CDrawingManager třídy. Tento fragment kódu je součástí ukázky ukázky 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

Vyplní obdélníkovou oblast dvěma barevnými přechody.

void Fill4ColorsGradient(
    CRect rect,
    COLORREF colorStart1,
    COLORREF colorFinish1,
    COLORREF colorStart2,
    COLORREF colorFinish2,
    BOOL bHorz = TRUE,
    int nPercentage = 50);

Parametry

Rect
[v] Obdélník, který chcete vyplnit.

colorStart1
[v] Počáteční barva prvního barevného přechodu.

colorFinish1
[v] Konečná barva prvního barevného přechodu.

colorStart2
[v] Počáteční barva druhého barevného přechodu.

colorFinish2
[v] Konečná barva druhého barevného přechodu.

bHorz
[v] Logický parametr, který označuje, zda Fill4ColorsGradient barvy vodorovného nebo svislého přechodu. PRAVDA označuje vodorovný přechod.

nPercentage
[v] Celé číslo od 0 do 100. Tato hodnota označuje procento obdélníku, které se má vyplnit prvním barevným přechodem.

Poznámky

Pokud je obdélník vyplněný dvěma barevnými přechody, nacházejí se buď nad sebou, nebo vedle sebe v závislosti na hodnotě bHorz. Každý barevný přechod se počítá nezávisle pomocí metody CDrawingManager::FillGradient.

Tato metoda vygeneruje chybu kontrolního výrazu, pokud je hodnota nPercentage menší než 0 nebo více než 100.

CDrawingManager::FillGradient

Vyplní obdélníkovou oblast zadaným barevným přechodem.

void FillGradient(
    CRect rect,
    COLORREF colorStart,
    COLORREF colorFinish,
    BOOL bHorz = TRUE,
    int nStartFlatPercentage = 0,
    int nEndFlatPercentage = 0);

Parametry

Rect
[v] Obdélníková oblast, která se má vyplnit.

colorStart
[v] První barva přechodu.

colorFinish
[v] Konečná barva přechodu.

bHorz
[v] Logický parametr, který určuje, zda FillGradient má nakreslit vodorovný nebo svislý přechod.

nStartFlatPercentage
[v] Procento obdélníku, který FillGradient vyplní colorStart před zahájením přechodu.

nEndFlatPercentage
[v] Procento obdélníku, který FillGradient vyplní barvouFinish po dokončení přechodu.

Příklad

Následující příklad ukazuje, jak použít FillGradient metodu CDrawingManager třídy. Tento fragment kódu je součástí ukázky MS Office 2007 Demo.

// CRect rectScreen
// CDrawingManager dm
dm.FillGradient(rectScreen, RGB(114, 125, 152), RGB(178, 185, 202), TRUE);

CDrawingManager::FillGradient2

Vyplní obdélníkovou oblast zadaným barevným přechodem.

void FillGradient2 (
    CRect rect,
    COLORREF colorStart,
    COLORREF colorFinish,
    int nAngle = 0);

Parametry

Rect
[v] Obdélníková oblast, která se má vyplnit.

colorStart
[v] První barva přechodu.

colorFinish
[v] Poslední barva přechodu.

nAngle
[v] Celé číslo mezi 0 a 360. Tento parametr určuje směr barevného přechodu.

Poznámky

Pomocí nAngle určete směr barevného přechodu. Když zadáte směr barevného přechodu, určíte také, kde barevný přechod začíná. Hodnota 0 pro nAngle označuje přechod začíná od horní části obdélníku. S nárůstem nAngle se počáteční umístění přechodu pohybuje v proti směru hodinových ručiček na základě úhlu.

Příklad

Následující příklad ukazuje, jak použít FillGradient2 metodu CDrawingManager třídy. Tento fragment kódu je součástí ukázky New Controls.

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

Vyplní obdélník zadanou šedou barvou.

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

Parametry

Rect
[v] Obdélníková oblast, která se má vyplnit.

nPercentage
[v] Procento šedé, které chcete mít v obdélníku.

clrTransparent
[v] Průhledná barva.

clrDisabled
[v] Barva, kterou tato metoda používá k odstranění sytosti, pokud je nPercentage nastavena na -1.

Vrácená hodnota

TRUE, pokud byla metoda úspěšná; jinak NEPRAVDA.

Poznámky

Pro parametr nPercentage nižší hodnota označuje tmavší barvu.

Maximální hodnota pro nPercentage je 200. Hodnota větší než 200 nezmění vzhled obdélníku. Pokud je hodnota -1, tato metoda používá clrDisabled k omezení sytosti obdélníku.

CDrawingManager::HighlightRect

Zvýrazní obdélníkovou oblast.

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

Parametry

Rect
[v] Obdélníková oblast, která se má zvýraznit.

nPercentage
[v] Procento, které označuje, jak by mělo být zvýraznění transparentní.

clrTransparent
[v] Průhledná barva.

nTolerance
[v] Celé číslo mezi 0 a 255, které označuje odolnost barev.

clrBlend
[v] Základní barva pro prolnutí.

Vrácená hodnota

TRUE, pokud je metoda úspěšná; jinak NEPRAVDA.

Poznámky

Pokud je hodnota nPercentage mezi 0 a 99, HighlightRect použije algoritmus alfa prolnutí. Další informace o alfa prolnutí naleznete v tématu Alfa Blending Lines and Fills. Pokud nPercentage je -1, tato metoda používá výchozí úroveň zvýraznění. Pokud nPercentage je 100, tato metoda nedělá nic a vrací hodnotu PRAVDA.

Metoda používá parametr nTolerance k určení, zda má zvýraznit obdélníkovou oblast. Pokud chcete zvýraznit obdélník, rozdíl mezi barvou pozadí aplikace a clrTransparent musí být v každé barevné komponentě menší než nTolerance (červená, zelená a modrá).

CDrawingManager::HLStoRGB_ONE

Převede barvu z reprezentace HLS na reprezentaci RGB.

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

Parametry

H
[v] Číslo mezi 0 a 1, které představuje odstín barvy.

L
[v] Číslo mezi 0 a 1, které označuje světelnost barvy.

S
[v] Číslo mezi 0 a 1, které označuje sytost barvy.

Vrácená hodnota

Znázornění RGB poskytnuté barvy HLS.

Poznámky

Barvu lze reprezentovat jako HSV (odstín, sytost a hodnota), HSL (odstín, sytost a světelnost) nebo RGB (červená, zelená a modrá). Další informace o různých reprezentacích barev naleznete v tématu Barva.

Tato metoda a CDrawingManager::HLStoRGB_TWO metoda provádějí stejnou operaci, ale vyžadují různé hodnoty pro parametr H . V této metodě je H procento kruhu. CDrawingManager::HLStoRGB_TWO V metodě je H hodnota stupně mezi 0 a 360, která obě představují červenou. Například s HLStoRGB_ONEhodnotou 0,25 pro H je ekvivalentní hodnotě 90 s HLStoRGB_TWO.

CDrawingManager::HLStoRGB_TWO

Převede barvu z reprezentace HLS na reprezentaci RGB.

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

Parametry

H
[v] Číslo mezi 0 a 360, které představuje odstín barvy.

L
[v] Číslo mezi 0 a 1, které označuje světelnost barvy.

S
[v] Číslo mezi 0 a 1, které označuje sytost barvy.

Vrácená hodnota

Znázornění RGB poskytnuté barvy HLS.

Poznámky

Barvu lze reprezentovat jako HSV (odstín, sytost a hodnota), HSL (odstín, sytost a světelnost) nebo RGB (červená, zelená a modrá). Další informace o různých reprezentacích barev naleznete v tématu Barva.

Tato metoda a CDrawingManager::HLStoRGB_ONE metoda provádějí stejnou operaci, ale vyžadují různé hodnoty pro parametr H . V této metodě je H hodnota stupně mezi 0 a 360, která obě představují červenou. V CDrawingManager::HLStoRGB_ONE metoda H je procento kruhu. Například s HLStoRGB_ONEhodnotou 0,25 pro H je ekvivalentní hodnotě 90 s HLStoRGB_TWO.

CDrawingManager::HSVtoRGB

Převede barvu z reprezentace HSV na reprezentaci RGB.

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

Parametry

H
[v] Číslo mezi 0 a 360, které označuje odstín barvy.

S
[v] Číslo mezi 0 a 1, které označuje sytost barvy.

V
[v] Číslo mezi 0 a 1, které označuje hodnotu barvy.

Vrácená hodnota

Znázornění RGB poskytnuté barvy HSV.

Poznámky

Barvu lze reprezentovat jako HSV (odstín, sytost a hodnota), HSL (odstín, sytost a světelnost) nebo RGB (červená, zelená a modrá). Další informace o různých reprezentacích barev naleznete v tématu Barva.

CDrawingManager::HuetoRGB

Převede hodnotu odstínu na červenou, zelenou nebo modrou komponentu.

static double __stdcall HuetoRGB(
    double m1,
    double m2,
    double h);

static BYTE __stdcall HueToRGB(
    float rm1,
    float rm2,
    float rh);

Parametry

m1
[v] Viz poznámky.

m2
[v] Viz poznámky.

h
[v] Viz poznámky.

rm1
[v] Viz poznámky.

rm2
[v] Viz poznámky.

Rh
[v] Viz poznámky.

Vrácená hodnota

Jednotlivá červená, zelená nebo modrá součást pro poskytnutý odstín.

Poznámky

Tato metoda je pomocná metoda, kterou CDrawingManager třída používá k výpočtu jednotlivých červených, zelených a modrých komponent barvy v reprezentaci HSV nebo HSL. Tato metoda není navržena tak, aby byla volána přímo programátorem. Vstupní parametry jsou hodnoty, které závisí na algoritmu převodu.

Chcete-li převést barvu HSV nebo HSL na reprezentaci RGB, zavolejte jednu z následujících metod:

CDrawingManager::MirrorRect

Překlopí obdélníkovou oblast.

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

Parametry

Rect
[v] Ohraničující obdélník oblasti, která se má překlopit.

bHorz
[v] Logický parametr, který označuje, jestli obdélník překlopí vodorovně nebo svisle.

Poznámky

Tato metoda může překlopit libovolnou oblast kontextu zařízení vlastněného CDrawingManager třídou. Pokud je bHorz nastavena na TRUE, tato metoda překlopí oblast vodorovně. V opačném případě překlopí oblast svisle.

CDrawingManager::P ixelAlpha

Vypočítá konečnou barvu pro poloprůhledný pixel.

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
[v] Počáteční barva pixelu.

Procent
[v] Číslo mezi 0 a 100, které představuje procento transparentnosti. Hodnota 100 označuje, že počáteční barva je zcela průhledná.

percentR
[v] Číslo mezi 0 a 100, které představuje procento průhlednosti červené komponenty.

percentG
[v] Číslo mezi 0 a 100, které představuje procento průhlednosti zelené složky.

percentB
[v] Číslo mezi 0 a 100, které představuje procento průhlednosti modré komponenty.

dstPixel
[v] Základní barva pixelu.

Vrácená hodnota

Konečná barva poloprůhledných pixelů.

Poznámky

Toto je pomocná třída pro barvení poloprůhledných rastrových obrázků a není navržena tak, aby byla volána přímo programátorem.

Při použití verze metody, která má dstPixel, konečná barva je kombinace dstPixel a srcPixel. Barva srcPixel je částečně průhledná barva nad základní barvou dstPixel.

CDrawingManager::P repareShadowMask

Vytvoří rastrový obrázek, který lze použít jako stín.

static HBITMAP __stdcall PrepareShadowMask (
    int nDepth,
    COLORREF clrBase,
    int iMinBrightness = 0,
    int iMaxBrightness = 100);

Parametry

nDepth
[v] Šířka a výška stínu.

clrBase
[v] Barva stínu.

iMinBrightness
[v] Minimální jas stínu.

iMaxBrightness
[v] Maximální jas stínu.

Vrácená hodnota

Popisovač vytvořeného rastrového obrázku, pokud je tato metoda úspěšná; jinak NULL.

Poznámky

Pokud je hodnota nDepth nastavena na hodnotu 0, tato metoda ukončí a vrátí hodnotu NULL. Pokud je hodnota nDepth menší než 3, je šířka a výška stínu nastavena na 3 pixely.

CDrawingManager::RGBtoHSL

Převede barvu z červené, zelené a modré reprezentace (RGB) na odstín, sytost a světlost (HSL).

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

Parametry

Rgb
[v] Barva v hodnotách RGB.

H
[ven] Ukazatel na dvojité místo, kde metoda ukládá odstín barvy.

S
[ven] Ukazatel na dvojitou, kde metoda ukládá sytost barvy.

L
[ven] Ukazatel na dvojitou, kde metoda ukládá světlost barvy.

Poznámky

Barvu lze reprezentovat jako HSV (odstín, sytost a hodnota), HSL (odstín, sytost a světelnost) nebo RGB (červená, zelená a modrá). Další informace o různých reprezentacích barev naleznete v tématu Barva.

Vrácená hodnota pro H je reprezentována jako zlomek mezi 0 a 1, kde 0 a 1 představuje červenou. Vrácené hodnoty pro S a L jsou čísla od 0 do 1.

CDrawingManager::RGBtoHSV

Převede barvu z reprezentace RGB na reprezentaci HSV.

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

Parametry

Rgb
[v] Barva, která se má převést v reprezentaci RGB.

H
[ven] Ukazatel na dvojitou, kde tato metoda ukládá výsledný odstín barvy.

S
[ven] Ukazatel na dvojitou, kde tato metoda ukládá výslednou sytost barvy.

V
[ven] Ukazatel na dvojitou hodnotu, kde tato metoda ukládá výslednou hodnotu pro barvu.

Poznámky

Barvu lze reprezentovat jako HSV (odstín, sytost a hodnota), HSL (odstín, sytost a světelnost) nebo RGB (červená, zelená a modrá). Další informace o různých reprezentacích barev naleznete v tématu Barva.

Vrácená hodnota pro H je číslo od 0 do 360, kde 0 i 360 označuje červenou. Návratové hodnoty pro S a V jsou čísla od 0 do 1.

CDrawingManager::SetAlphaPixel

Barva průhledného pixelu v rastrovém obrázku

static void __stdcall SetAlphaPixel(
    COLORREF* pBits,
    CRect rect,
    int x,
    int y,
    int percent,
    int iShadowSize,
    COLORREF clrBase = (COLORREF)-1,
    BOOL bIsRight = TRUE);

Parametry

pBits
[v] Ukazatel na bitové hodnoty rastrového obrázku.

Rect
[v] Obdélníková oblast v aplikaci. Nadřízený výkresu nakreslí stín pod a vpravo od této oblasti.

X
[v] Vodorovná souřadnice pixelu na barvu.

Y
[v] Svislá souřadnice pixelu na barvu.

Procent
[v] Procento transparentnosti.

iShadowSize
[v] Šířka a výška stínu.

clrBase
[v] Barva stínu.

bIsRight
[v] Logický parametr, který označuje, který pixel se má obarvit. Další informace naleznete v části Poznámky.

Poznámky

Tato metoda je pomocná metoda, kterou používá CDrawingManager::D rawShadow metoda. Doporučujeme, abyste místo toho chtěli nakreslit stín CDrawingManager::DrawShadow .

Pokud je bIsRight nastaven na HODNOTU TRUE, pixel na barvu se měří x pixelů od pravého okraje rektu. Pokud je hodnota FALSE, pixel na barvu se měří x pixelů od levého okraje rektu.

CDrawingManager::SetPixel

Změní jeden pixel v rastrovém obrázku na zadanou barvu.

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

Parametry

pBits
[v] Ukazatel na bitové hodnoty rastrového obrázku.

Cx
[v] Celková šířka rastrového obrázku.

Cy
[v] Celková výška rastrového obrázku.

X
[v] Souřadnice x pixelu v rastrovém obrázku, která se má změnit.

Y
[v] Souřadnice y pixelu v rastrovém obrázku, která se má změnit.

Barev
[v] Nová barva pixelu identifikovaná zadanými souřadnicemi.

CDrawingManager::SmartMixColors

Kombinuje dvě barvy na základě váženého poměru.

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

Parametry

color1
[v] První barva, která se má kombinovat.

color2
[v] Druhá barva, která se má kombinovat.

dblLumRatio
[v] Poměr světelnosti nové barvy. SmartMixColors před určením konečné barvy vynásobí světelnost smíšené barvy tímto poměrem.

k1
[v] Vážený poměr pro první barvu.

k2
[v] Vážený poměr pro druhou barvu.

Vrácená hodnota

Barva, která představuje váženou kombinaci zadaných barev.

Poznámky

Tato metoda selže s chybou, pokud je k1 nebo k2 menší než nula. Pokud jsou oba tyto parametry nastaveny na hodnotu 0, vrátí RGB(0, 0, 0)metoda .

Vážený poměr se vypočítá následujícím vzorcem: (color1 * k1 + color2 * k2)/(k1 + k2). Po určení váženého poměru vypočítá metoda světelnost pro smíšenou barvu. Potom vynásobí světelnost dblLumRatio. Pokud je hodnota větší než 1,0, metoda nastaví světelnost pro smíšenou barvu na novou hodnotu. V opačném případě je světelnost nastavena na hodnotu 1,0.

CDrawingManager::D rawRotated

Otočí zdrojový obsah řadiče domény uvnitř daného obdélníku o 90 stupňů.

void DrawRotated(
    CRect rectDest,
    CDC& dcSrc,
    BOOL bClockWise);

Parametry

rectDest
Cílový obdélník.

DcSrc
Kontext zdrojového zařízení.

bClockWise
PRAVDA označuje otočení +90 stupňů; NEPRAVDA označuje otočení -90 stupňů.

Poznámky

Viz také

Graf hierarchie
Třídy