CDrawingManager – třída
Třída CDrawingManager
implementuje složité algoritmy kreslení.
Syntaxe
class CDrawingManager : public CObject
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CDrawingManager::CDrawingManager | CDrawingManager Vytvoří objekt. |
CDrawingManager::~CDrawingManager |
Destruktor. |
Veřejné metody
Název | 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
stejnosměrný proud
[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.
bitmapa
Úchyt původního rastrového obrázku
clrTransparent
Hodnota RGB určující průhlednou barvu původního rastrového obrázku.
Návratová 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.
Návratová 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.
Návratová 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 DrawShadow
můž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 NULL
ně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.
Návratová 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í.
Návratová 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.
Návratová 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_ONE
hodnotou 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.
Návratová 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_ONE
hodnotou 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.
Návratová 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.
Návratová 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.
procento
[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.
Návratová 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.
Návratová 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.
procento
[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.
barva
[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.
Návratová 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ňů.