Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Opmerking
De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
De CDrawingManager klasse implementeert complexe tekenalgoritmen.
Syntaxis
class CDrawingManager : public CObject
Leden
Openbare constructors
| Naam | Description |
|---|---|
| CDrawingManager::CDrawingManager | Maakt een CDrawingManager object. |
CDrawingManager::~CDrawingManager |
Destructor. |
Openbare methoden
| Naam | Description |
|---|---|
| CDrawingManager::CreateBitmap_32 | Hiermee maakt u een 32-bits apparaatonafhankelijke bitmap (DIB) waarnaar toepassingen rechtstreeks kunnen schrijven. |
| CDrawingManager::D rawAlpha | Hiermee geeft u bitmaps weer met transparante of semitransparante pixels. |
| CDrawingManager::D rawRotated | Draait een bron-DC-inhoud binnen de opgegeven rechthoek met +/- 90 graden |
| CDrawingManager::D rawEllipse | Hiermee tekent u een beletselteken met de opgegeven opvul- en randkleuren. |
| CDrawingManager::D rawGradientRing | Hiermee tekent u een ring en vult u deze met een kleurovergang. |
| CDrawingManager::D rawLine, CDrawingManager::D rawLineA | Hiermee tekent u een lijn. |
| CDrawingManager::D rawRect | Hiermee tekent u een rechthoek met de opgegeven opvul- en randkleuren. |
| CDrawingManager::D rawShadow | Hiermee tekent u een schaduw voor een rechthoekig gebied. |
| CDrawingManager::Fill4ColorsGradient | Hiermee wordt een rechthoekig gebied gevuld met twee kleurovergangen. |
| CDrawingManager::FillGradient | Hiermee wordt een rechthoekig gebied gevuld met een opgegeven kleurovergang. |
| CDrawingManager::FillGradient2 | Hiermee wordt een rechthoekig gebied gevuld met een opgegeven kleurovergang. De kleurwijziging van de kleurovergang wordt ook opgegeven. |
| CDrawingManager::GrayRect | Hiermee wordt een rechthoek gevuld met een opgegeven grijze kleur. |
| CDrawingManager::HighlightRect | Markeert een rechthoekig gebied. |
| CDrawingManager::HLStoRGB_ONE | Converteert een kleur van een HLS-weergave naar een RGB-weergave. |
| CDrawingManager::HLStoRGB_TWO | Converteert een kleur van een HLS-weergave naar een RGB-weergave. |
| CDrawingManager::HSVtoRGB | Converteert een kleur van een HSV-weergave naar een RGB-weergave. |
| CDrawingManager::HuetoRGB | Helpermethode waarmee een tintwaarde wordt geconverteerd naar een rood, groen of blauw onderdeel. |
| CDrawingManager::MirrorRect | Hiermee wordt een rechthoekig gebied gespiegeld. |
| CDrawingManager::P ixelAlpha | Helpermethode waarmee de uiteindelijke kleur voor een semitransparante pixel wordt bepaald. |
| CDrawingManager::P repareShadowMask | Hiermee maakt u een bitmap die als schaduw kan worden gebruikt. |
| CDrawingManager::RGBtoHSL | Converteert een kleur van een RGB-weergave naar een HSL-weergave. |
| CDrawingManager::RGBtoHSV | Converteert een kleur van een RGB-weergave naar een HSV-weergave. |
| CDrawingManager::SetAlpha Pixel | Helpermethode die een gedeeltelijk transparante pixel in een bitmap kleuren. |
| CDrawingManager::Set Pixel | Helpermethode waarmee één pixel in een bitmap wordt gewijzigd in de opgegeven kleur. |
| CDrawingManager::SmartMixColors | Combineert twee kleuren op basis van een gewogen verhouding. |
Opmerkingen
De CDrawingManager klasse biedt functies voor tekenschaduwen, kleurovergangen en gemarkeerde rechthoeken. Het voert ook alfa-blending uit. U kunt deze klasse gebruiken om de gebruikersinterface van uw toepassing rechtstreeks te wijzigen.
Overnamehiërarchie
CObject
CDrawingManager
Requirements
Koptekst: afxdrawmanager.h
CDrawingManager::CDrawingManager
Maakt een CDrawingManager-object .
CDrawingManager(CDC& dc);
Parameterwaarden
Dc
[in] Een verwijzing naar een apparaatcontext. Deze CDrawingManager context wordt gebruikt voor tekenen.
CDrawingManager::CreateBitmap_32
Hiermee maakt u een 32-bits apparaatonafhankelijke bitmap (DIB) waarnaar toepassingen rechtstreeks kunnen schrijven.
static HBITMAP __stdcall CreateBitmap_32(
const CSize& size,
void** pBits);
static HBITMAP __stdcall CreateBitmap_32(
HBITMAP bitmap,
COLORREF clrTransparent = -1);
Parameterwaarden
grootte
[in] Een CSize-parameter die de grootte van de bitmap aangeeft.
pBits
[uit] Een aanwijzer naar een gegevenspointer die de locatie van de bitwaarden van de DIB ontvangt.
bitmap
Een ingang naar de oorspronkelijke bitmap
clrTransparent
Een RGB-waarde die transparante kleur van de oorspronkelijke bitmap aangeeft.
Retourwaarde
Een ingang naar de zojuist gemaakte DIB-bitmap als deze methode is geslaagd; anders NULL.
Opmerkingen
Zie CreateDIBSection voor meer informatie over het maken van een DIB-bitmap.
CDrawingManager::D rawAlpha
Hiermee geeft u bitmaps weer met transparante of semitransparante pixels.
void DrawAlpha(
CDC* pDstDC,
const CRect& rectDst,
CDC* pSrcDC,
const CRect& rectSrc);
Parameterwaarden
pDstDC
[in] Een aanwijzer naar de apparaatcontext voor de bestemming.
rectDst
[in] De doelrechthoek.
pSrcDC
[in] Een aanwijzer naar de apparaatcontext voor de bron.
rectSrc
[in] De bronrechthoek.
Opmerkingen
Met deze methode wordt alfamixing uitgevoerd voor twee bitmaps. Zie AlphaBlend in de Windows SDK voor meer informatie over alfamixen.
CDrawingManager::D rawEllipse
Hiermee tekent u een beletselteken met de opgegeven opvul- en randkleuren.
void DrawEllipse(
const CRect& rect,
COLORREF clrFill,
COLORREF clrLine);
Parameterwaarden
Rect
[in] De begrenzingsrechthoek voor het beletselteken.
clrFill
[in] De kleur die door deze methode wordt gebruikt om het beletselteken te vullen.
clrLine
[in] De kleur die deze methode gebruikt als de rand van het beletselteken.
Opmerkingen
Deze methode retourneert zonder een beletselteken te tekenen als een van de kleuren is ingesteld op -1. Het retourneert ook zonder een beletselteken te tekenen als een van beide dimensies van de begrenzingsrechthoek 0 is.
CDrawingManager::D rawGradientRing
Hiermee tekent u een ring en vult u deze met een kleurovergang.
BOOL DrawGradientRing(
CRect rect,
COLORREF colorStart,
COLORREF colorFinish,
COLORREF colorBorder,
int nAngle,
int nWidth,
COLORREF clrFace = (COLORREF)-1);
Parameterwaarden
Rect
[in] Een CRect-parameter die de grens voor de kleurovergangsring aangeeft.
colorStart
[in] De eerste kleur voor de kleurovergang.
colorFinish
[in] De laatste kleur voor de kleurovergang.
colorBorder
[in] De kleur van de rand.
nAngle
[in] Een parameter die de eerste tekenhoek met kleurovergang aangeeft. Deze waarde moet tussen 0 en 360 zijn.
nWidth
[in] De breedte van de rand voor de ring.
clrFace
[in] De kleur van het interieur van de ring.
Retourwaarde
Niet-nul indien geslaagd; anders 0.
Opmerkingen
De rechthoek die door rect is gedefinieerd, moet ten minste 5 pixels breed en 5 pixels hoog zijn.
CDrawingManager::D rawLine, CDrawingManager::D rawLineA
Hiermee tekent u een lijn.
void DrawLine(
int x1,
int y1,
int x2,
int y2,
COLORREF clrLine);
void DrawLineA(
double x1,
double y1,
double x2,
double y2,
COLORREF clrLine);
Parameterwaarden
x1
[in] De x-coördinaat waar de lijn begint.
y1
[in] De y-coördinaat waar de lijn begint.
x2
[in] De x-coördinaat waar de lijn eindigt.
y2
[in] De y-coördinaat waar de lijn eindigt.
clrLine
[in] De kleur van de lijn.
Opmerkingen
Deze methode mislukt als clrLine gelijk is aan -1.
CDrawingManager::D rawRect
Hiermee tekent u een rechthoek met de opgegeven opvul- en randkleuren.
void DrawRect(
const CRect& rect,
COLORREF clrFill,
COLORREF clrLine);
Parameterwaarden
Rect
[in] De grenzen voor de rechthoek.
clrFill
[in] De kleur die door deze methode wordt gebruikt om de rechthoek te vullen.
clrLine
[in] De kleur die deze methode gebruikt voor de rand van de rechthoek.
Opmerkingen
Deze methode retourneert zonder een rechthoek te tekenen als een van beide kleuren is ingesteld op -1. Het retourneert ook als een van de dimensies van de rechthoek 0 is.
CDrawingManager::D rawShadow
Hiermee tekent u een schaduw voor een rechthoekig gebied.
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);
Parameterwaarden
Rect
[in] Een rechthoekig gebied in uw toepassing. De tekenbeheerder tekent een schaduw onder dit gebied.
nDepth
[in] De breedte en hoogte van de schaduw.
iMinBrightness
[in] De minimale helderheid van de schaduw.
iMaxBrightness
[in] De maximale helderheid van de schaduw.
pBmpSaveBottom
[in] Een aanwijzer naar een bitmap die de afbeelding voor het onderste deel van de schaduw bevat.
pBmpSaveRight
[in] Een aanwijzer naar een bitmap die de afbeelding bevat voor de schaduw die aan de rechterkant van de rechthoek wordt getekend.
clrBase
[in] De kleur van de schaduw.
bRightShadow
[in] Een Booleaanse parameter die aangeeft hoe de schaduw wordt getekend. Als bRightShadow is TRUE, DrawShadow tekent u een schaduw aan de rechterkant van de rechthoek.
Retourwaarde
Niet-nul indien geslaagd; anders 0.
Opmerkingen
U kunt twee geldige bitmaps opgeven voor de schaduwen onderaan en rechts met behulp van de parameters pBmpSaveBottom en pBmpSaveRight. Als deze CBitmap-objecten een gekoppeld GDI-object hebben, DrawShadow worden deze bitmaps gebruikt als schaduwen. Als de CBitmap parameters geen gekoppeld GDI-object hebben, tekent u DrawShadow de schaduw en koppelt u de bitmaps aan de parameters. In toekomstige aanroepen DrawShadowkunt u deze bitmaps opgeven om het tekenproces te versnellen. Zie Afbeeldingsobjecten voor meer informatie over de CBitmap klasse- en GDI-objecten.
Als een van deze parameters is NULL, DrawShadow wordt de schaduw automatisch getekend.
Als u bRightShadow instelt op FALSE, wordt de schaduw eronder en links van het rechthoekige gebied getekend.
Example
In het volgende voorbeeld ziet u hoe u de DrawShadow methode van de CDrawingManager klasse gebruikt. Dit codefragment maakt deel uit van het Prop Sheet Demo-voorbeeld.
// 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
Hiermee wordt een rechthoekig gebied gevuld met twee kleurovergangen.
void Fill4ColorsGradient(
CRect rect,
COLORREF colorStart1,
COLORREF colorFinish1,
COLORREF colorStart2,
COLORREF colorFinish2,
BOOL bHorz = TRUE,
int nPercentage = 50);
Parameterwaarden
Rect
[in] De rechthoek die moet worden gevuld.
colorStart1
[in] De eerste kleur voor de eerste kleurovergang.
colorFinish1
[in] De laatste kleur voor de eerste kleurovergang.
colorStart2
[in] De eerste kleur voor de tweede kleurovergang.
colorFinish2
[in] De uiteindelijke kleur voor de tweede kleurovergang.
bHorz
[in] Een Booleaanse parameter die aangeeft of Fill4ColorsGradient een horizontale of verticale kleurovergang wordt aangegeven. TRUE geeft een horizontale kleurovergang aan.
nPercentage
[in] Een geheel getal van 0-100. Deze waarde geeft het percentage van de rechthoek aan dat moet worden gevuld met de eerste kleurovergang.
Opmerkingen
Wanneer een rechthoek wordt gevuld met twee kleurovergangen, bevinden ze zich boven elkaar of naast elkaar, afhankelijk van de waarde van bHorz. Elke kleurovergang wordt onafhankelijk berekend met de methode CDrawingManager::FillGradient.
Met deze methode wordt een assertiefout gegenereerd als nPercentage kleiner is dan 0 of meer dan 100.
CDrawingManager::FillGradient
Hiermee wordt een rechthoekig gebied gevuld met de opgegeven kleurovergang.
void FillGradient(
CRect rect,
COLORREF colorStart,
COLORREF colorFinish,
BOOL bHorz = TRUE,
int nStartFlatPercentage = 0,
int nEndFlatPercentage = 0);
Parameterwaarden
Rect
[in] Het rechthoekige gebied dat moet worden gevuld.
colorStart
[in] De eerste kleur voor de kleurovergang.
colorFinish
[in] De uiteindelijke kleur voor de kleurovergang.
bHorz
[in] Een Booleaanse parameter die aangeeft of FillGradient een horizontale of verticale kleurovergang moet worden getekend.
nStartFlatPercentage
[in] Het percentage van de rechthoek die FillGradient wordt gevuld met colorStart voordat de kleurovergang wordt gestart.
nEndFlatPercentage
[in] Het percentage van de rechthoek die FillGradient wordt gevuld met colorFinish nadat de kleurovergang is voltooid.
Example
In het volgende voorbeeld ziet u hoe u de FillGradient methode van de CDrawingManager klasse gebruikt. Dit codefragment maakt deel uit van het MS Office 2007 Demo-voorbeeld.
// CRect rectScreen
// CDrawingManager dm
dm.FillGradient(rectScreen, RGB(114, 125, 152), RGB(178, 185, 202), TRUE);
CDrawingManager::FillGradient2
Hiermee wordt een rechthoekig gebied gevuld met een opgegeven kleurovergang.
void FillGradient2 (
CRect rect,
COLORREF colorStart,
COLORREF colorFinish,
int nAngle = 0);
Parameterwaarden
Rect
[in] Het rechthoekige gebied dat moet worden gevuld.
colorStart
[in] De eerste kleur van de kleurovergang.
colorFinish
[in] De laatste kleur van de kleurovergang.
nAngle
[in] Een geheel getal tussen 0 en 360. Deze parameter geeft de richting van de kleurovergang aan.
Opmerkingen
Gebruik nAngle om de richting van de kleurovergang op te geven. Wanneer u de richting van de kleurovergang opgeeft, geeft u ook op waar de kleurovergang begint. Een waarde van 0 voor nAngle geeft aan dat de kleurovergang begint vanaf de bovenkant van de rechthoek. Naarmate nAngle toeneemt, wordt de beginlocatie voor de kleurovergang in een richting met de klok mee verplaatst op basis van de hoek.
Example
In het volgende voorbeeld ziet u hoe u de FillGradient2 methode van de CDrawingManager klasse gebruikt. Dit codefragment maakt deel uit van het voorbeeld Nieuwe besturingselementen.
// 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
Hiermee wordt een rechthoek gevuld met een opgegeven grijze kleur.
BOOL GrayRect(
CRect rect,
int nPercentage = -1,
COLORREF clrTransparent = (COLORREF)-1,
COLORREF clrDisabled = (COLORREF)-1);
Parameterwaarden
Rect
[in] Het rechthoekige gebied dat moet worden gevuld.
nPercentage
[in] Het gewenste percentage grijs in de rechthoek.
clrTransparent
[in] De transparante kleur.
clrDisabled
[in] De kleur die door deze methode wordt gebruikt voor de verzadiging als nPercentage is ingesteld op -1.
Retourwaarde
WAAR als de methode is geslaagd; anders ONWAAR.
Opmerkingen
Voor de parameter nPercentage geeft een lagere waarde een donkerdere kleur aan.
De maximumwaarde voor nPercentage is 200. Een waarde die groter is dan 200, verandert niet het uiterlijk van de rechthoek. Als de waarde -1 is, gebruikt deze methode clrDisabled om de verzadiging van de rechthoek te beperken.
CDrawingManager::HighlightRect
Markeert een rechthoekig gebied.
BOOL HighlightRect(
CRect rect,
int nPercentage = -1,
COLORREF clrTransparent = (COLORREF)-1,
int nTolerance = 0,
COLORREF clrBlend = (COLORREF)-1);
Parameterwaarden
Rect
[in] Een rechthoekig gebied om te markeren.
nPercentage
[in] Een percentage dat aangeeft hoe transparant de markering moet zijn.
clrTransparent
[in] De transparante kleur.
nTolerance
[in] Een geheel getal tussen 0 en 255 dat de kleurtolerantie aangeeft.
clrBlend
[in] De basiskleur voor blending.
Retourwaarde
WAAR als de methode is geslaagd; anders ONWAAR.
Opmerkingen
Als nPercentage tussen 0 en 99 ligt, HighlightRect gebruikt u het algoritme alfamixing. Zie Alpha Blending Lines and Fills (Alpha Blending Lines and Fills) voor meer informatie over alfamixing. Als nPercentage -1 is, gebruikt deze methode het standaardmarkeringsniveau. Als nPercentage 100 is, doet deze methode niets en retourneert TRUE.
De methode gebruikt de parameter nTolerance om te bepalen of het rechthoekige gebied moet worden gemarkeerd. Als u de rechthoek wilt markeren, moet het verschil tussen de achtergrondkleur van uw toepassing en clrTransparent kleiner zijn dan nTolerance in elk kleuronderdeel (rood, groen en blauw).
CDrawingManager::HLStoRGB_ONE
Converteert een kleur van een HLS-weergave naar een RGB-weergave.
static COLORREF __stdcall HLStoRGB_ONE(
double H,
double L,
double S);
Parameterwaarden
H
[in] Een getal tussen 0 en 1 dat de tint voor de kleur vertegenwoordigt.
L
[in] Een getal tussen 0 en 1 dat de helderheid voor de kleur aangeeft.
S
[in] Een getal tussen 0 en 1 dat de verzadiging voor de kleur aangeeft.
Retourwaarde
De RGB-weergave van de opgegeven HLS-kleur.
Opmerkingen
Een kleur kan worden weergegeven als HSV (tint, verzadiging en waarde), HSL (tint, verzadiging en helderheid), of RGB (rood, groen en blauw). Zie Kleur voor meer informatie over de verschillende kleurenweergaven.
Deze methode en de CDrawingManager::HLStoRGB_TWO methode voeren dezelfde bewerking uit, maar vereisen verschillende waarden voor de H-parameter . In deze methode is H een percentage van de cirkel. In de CDrawingManager::HLStoRGB_TWO methode is H een gradenwaarde tussen 0 en 360, die beide rood vertegenwoordigen. Met HLStoRGB_ONEbijvoorbeeld , een waarde van 0,25 voor H is gelijk aan een waarde van 90 met HLStoRGB_TWO.
CDrawingManager::HLStoRGB_TWO
Converteert een kleur van een HLS-weergave naar een RGB-weergave.
static COLORREF __stdcall HLStoRGB_TWO(
double H,
double L,
double S);
Parameterwaarden
H
[in] Een getal tussen 0 en 360 dat de tint voor de kleur vertegenwoordigt.
L
[in] Een getal tussen 0 en 1 dat de helderheid voor de kleur aangeeft.
S
[in] Een getal tussen 0 en 1 dat de verzadiging voor de kleur aangeeft.
Retourwaarde
De RGB-weergave van de opgegeven HLS-kleur.
Opmerkingen
Een kleur kan worden weergegeven als HSV (tint, verzadiging en waarde), HSL (tint, verzadiging en helderheid), of RGB (rood, groen en blauw). Zie Kleur voor meer informatie over de verschillende kleurenweergaven.
Deze methode en de CDrawingManager::HLStoRGB_ONE-methode voeren dezelfde bewerking uit, maar vereisen verschillende waarden voor de H-parameter . In deze methode is H een gradenwaarde tussen 0 en 360, die beide rood vertegenwoordigen. In de methode CDrawingManager::HLStoRGB_ONE is H een percentage van de cirkel. Met HLStoRGB_ONEbijvoorbeeld , een waarde van 0,25 voor H is gelijk aan een waarde van 90 met HLStoRGB_TWO.
CDrawingManager::HSVtoRGB
Converteert een kleur van een HSV-weergave naar een RGB-weergave.
static COLORREF __stdcall HSVtoRGB(
double H,
double S,
double V);
Parameterwaarden
H
[in] Een getal tussen 0 en 360 dat de tint voor de kleur aangeeft.
S
[in] Een getal tussen 0 en 1 dat de verzadiging voor de kleur aangeeft.
V
[in] Een getal tussen 0 en 1 dat de waarde voor de kleur aangeeft.
Retourwaarde
De RGB-weergave van de opgegeven HSV-kleur.
Opmerkingen
Een kleur kan worden weergegeven als HSV (tint, verzadiging en waarde), HSL (tint, verzadiging en helderheid), of RGB (rood, groen en blauw). Zie Kleur voor meer informatie over de verschillende kleurenweergaven.
CDrawingManager::HuetoRGB
Converteert een tintwaarde naar een rood, groen of blauw onderdeel.
static double __stdcall HuetoRGB(
double m1,
double m2,
double h);
static BYTE __stdcall HueToRGB(
float rm1,
float rm2,
float rh);
Parameterwaarden
m1
[in] Zie opmerkingen.
m2
[in] Zie opmerkingen.
h
[in] Zie opmerkingen.
rm1
[in] Zie opmerkingen.
rm2
[in] Zie opmerkingen.
Rh
[in] Zie opmerkingen.
Retourwaarde
Het afzonderlijke rode, groene of blauwe onderdeel voor de opgegeven tint.
Opmerkingen
Deze methode is een helpermethode die door de CDrawingManager klasse wordt gebruikt voor het berekenen van de afzonderlijke rode, groene en blauwe onderdelen van een kleur in een HSV- of HSL-weergave. Deze methode is niet ontworpen om rechtstreeks door de programmeur te worden aangeroepen. De invoerparameters zijn waarden die afhankelijk zijn van het conversie-algoritme.
Als u een HSV- of HSL-kleur wilt converteren naar een RGB-weergave, roept u een van de volgende methoden aan:
CDrawingManager::MirrorRect
Hiermee wordt een rechthoekig gebied gespiegeld.
void MirrorRect(
CRect rect,
BOOL bHorz = TRUE);
Parameterwaarden
Rect
[in] De begrenzingsrechthoek van het gebied om te spiegelen.
bHorz
[in] Een Booleaanse parameter die aangeeft of de rechthoek horizontaal of verticaal wordt gespiegeld.
Opmerkingen
Met deze methode kunt u elk gebied van de apparaatcontext spiegelen dat eigendom is van de CDrawingManager klasse. Als bHorz is ingesteld op TRUE, wordt met deze methode het gebied horizontaal gespiegeld. Anders wordt het gebied verticaal gespiegeld.
CDrawingManager::P ixelAlpha
Berekent de uiteindelijke kleur voor een semitransparante 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);
Parameterwaarden
src Pixel
[in] De initiële kleur voor de pixel.
procent
[in] Een getal tussen 0 en 100 dat het percentage transparantie vertegenwoordigt. Een waarde van 100 geeft aan dat de eerste kleur volledig transparant is.
percentR
[in] Een getal tussen 0 en 100 dat het percentage transparantie voor het rode onderdeel aangeeft.
percentageG
[in] Een getal tussen 0 en 100 dat het percentage transparantie voor het groene onderdeel aangeeft.
percentageB
[in] Een getal tussen 0 en 100 dat het percentage transparantie voor het blauwe onderdeel aangeeft.
dst Pixel
[in] De basiskleur voor de pixel.
Retourwaarde
De laatste kleur voor de semitransparante pixel.
Opmerkingen
Dit is een helperklasse voor het kleuren van semitransparante bitmaps en is niet ontworpen om rechtstreeks door de programmeur te worden aangeroepen.
Wanneer u de versie van de methode met dst Pixel gebruikt, is de uiteindelijke kleur een combinatie van dst Pixel en src Pixel. De src Pixel-kleur is de gedeeltelijk transparante kleur over de basiskleur van dst Pixel.
CDrawingManager::P repareShadowMask
Hiermee maakt u een bitmap die als schaduw kan worden gebruikt.
static HBITMAP __stdcall PrepareShadowMask (
int nDepth,
COLORREF clrBase,
int iMinBrightness = 0,
int iMaxBrightness = 100);
Parameterwaarden
nDepth
[in] De breedte en hoogte van de schaduw.
clrBase
[in] De kleur van de schaduw.
iMinBrightness
[in] De minimale helderheid van de schaduw.
iMaxBrightness
[in] De maximale helderheid van de schaduw.
Retourwaarde
Een ingang naar de gemaakte bitmap als deze methode is geslaagd; anders NULL.
Opmerkingen
Als nDepth is ingesteld op 0, wordt deze methode afgesloten en wordt NULL geretourneerd. Als nDepth kleiner is dan 3, wordt de breedte en hoogte van de schaduw ingesteld op 3 pixels.
CDrawingManager::RGBtoHSL
Converteert een kleur van een rode, groene en blauwe (RGB)-weergave naar een tint, verzadiging en lichtheidsweergave (HSL).
static void __stdcall RGBtoHSL(
COLORREF rgb,
double* H,
double* S,
double* L);
Parameterwaarden
Rgb
[in] De kleur in RGB-waarden.
H
[uit] Een aanwijzer naar een double waar de methode de tint voor de kleur opslaat.
S
[uit] Een aanwijzer naar een dubbele plaats waar de methode de verzadiging voor de kleur opslaat.
L
[uit] Een aanwijzer naar een dubbele positie waar de methode de lichtheid voor de kleur opslaat.
Opmerkingen
Een kleur kan worden weergegeven als HSV (tint, verzadiging en waarde), HSL (tint, verzadiging en helderheid), of RGB (rood, groen en blauw). Zie Kleur voor meer informatie over de verschillende kleurenweergaven.
De geretourneerde waarde voor H wordt weergegeven als een breuk tussen 0 en 1, waarbij zowel 0 als 1 rood zijn. De geretourneerde waarden voor S en L zijn getallen tussen 0 en 1.
CDrawingManager::RGBtoHSV
Converteert een kleur van een RGB-weergave naar een HSV-weergave.
static void __stdcall RGBtoHSV(
COLORREF rgb,
double* H,
double* S,
double* V);
Parameterwaarden
Rgb
[in] De kleur die moet worden geconverteerd in een RGB-weergave.
H
[uit] Een aanwijzer naar een double waar deze methode de resulterende tint voor de kleur opslaat.
S
[uit] Een aanwijzer naar een dubbele positie waar deze methode de resulterende verzadiging voor de kleur opslaat.
V
[uit] Een aanwijzer naar een dubbele plaats waar deze methode de resulterende waarde voor de kleur opslaat.
Opmerkingen
Een kleur kan worden weergegeven als HSV (tint, verzadiging en waarde), HSL (tint, verzadiging en helderheid), of RGB (rood, groen en blauw). Zie Kleur voor meer informatie over de verschillende kleurenweergaven.
De geretourneerde waarde voor H is een getal tussen 0 en 360 waarbij zowel 0 als 360 rood aangeven. De retourwaarden voor S en V zijn getallen tussen 0 en 1.
CDrawingManager::SetAlpha Pixel
Kleuren van een transparante pixel in een bitmap.
static void __stdcall SetAlphaPixel(
COLORREF* pBits,
CRect rect,
int x,
int y,
int percent,
int iShadowSize,
COLORREF clrBase = (COLORREF)-1,
BOOL bIsRight = TRUE);
Parameterwaarden
pBits
[in] Een aanwijzer naar de bitwaarden voor de bitmap.
Rect
[in] Een rechthoekig gebied in uw toepassing. De tekenbeheerder tekent een schaduw eronder en rechts van dit gebied.
x
[in] De horizontale coördinaat van de pixel naar kleur.
y
[in] De verticale coördinaat van de pixel naar kleur.
procent
[in] Het percentage transparantie.
iShadowSize
[in] De breedte en hoogte van de schaduw.
clrBase
[in] De kleur van de schaduw.
bIsRight
[in] Een Booleaanse parameter die aangeeft welke pixel moet worden gekleurd. Zie de sectie Opmerkingen voor meer informatie.
Opmerkingen
Deze methode is een helpermethode die wordt gebruikt door de methode CDrawingManager::D rawShadow . We raden u aan om in plaats daarvan een schaduw CDrawingManager::DrawShadow te tekenen.
Als bIsRight is ingesteld op TRUE, wordt de pixel naar kleur gemeten x pixels vanaf de rechterrand van rect. Als het ONWAAR is, wordt de pixel naar kleur gemeten x pixels vanaf de linkerrand van rect.
CDrawingManager::Set Pixel
Hiermee wijzigt u één pixel in een bitmap in de opgegeven kleur.
static void __stdcall SetPixel(
COLORREF* pBits,
int cx,
int cy,
int x,
int y,
COLORREF color);
Parameterwaarden
pBits
[in] Een aanwijzer naar de bitwaarden van de bitmap.
Cx
[in] De totale breedte van de bitmap.
Cy
[in] De totale hoogte van de bitmap.
x
[in] De x-coördinaat van de pixel in de bitmap die moet worden gewijzigd.
y
[in] De y-coördinaat van de pixel in de bitmap die moet worden gewijzigd.
kleur
[in] De nieuwe kleur voor de pixel die wordt geïdentificeerd door de opgegeven coördinaten.
CDrawingManager::SmartMixColors
Combineert twee kleuren op basis van een gewogen verhouding.
static COLORREF __stdcall SmartMixColors(
COLORREF color1,
COLORREF color2,
double dblLumRatio = 1.,
int k1 = 1,
int k2 = 1);
Parameterwaarden
color1
[in] De eerste kleur om te mixen.
color2
[in] De tweede kleur om te mixen.
dblLumRatio
[in] De verhouding voor de helderheid van de nieuwe kleur.
SmartMixColors vermenigvuldigt de helderheid van de gemengde kleur door deze verhouding voordat een uiteindelijke kleur wordt bepaald.
k1
[in] De gewogen verhouding voor de eerste kleur.
k2
[in] De gewogen verhouding voor de tweede kleur.
Retourwaarde
Een kleur die een gewogen mengsel van de meegeleverde kleuren vertegenwoordigt.
Opmerkingen
Deze methode mislukt met een fout als k1 of k2 kleiner is dan nul. Als beide parameters zijn ingesteld op 0, retourneert RGB(0, 0, 0)de methode .
De gewogen verhouding wordt berekend met de volgende formule: (color1 * k1 + color2 * k2)/(k1 + k2). Nadat de gewogen verhouding is bepaald, berekent de methode de helderheid voor de gemengde kleur. Vervolgens vermenigvuldigt het de helderheid door dblLumRatio. Als de waarde groter is dan 1,0, stelt de methode de helderheid voor de gemengde kleur in op de nieuwe waarde. Anders is de helderheid ingesteld op 1,0.
CDrawingManager::D rawRotated
Hiermee draait u een bron-DC-inhoud binnen de opgegeven rechthoek met 90 graden.
void DrawRotated(
CRect rectDest,
CDC& dcSrc,
BOOL bClockWise);
Parameterwaarden
rectDest
Doelrechthoek.
dcSrc
De context van het bronapparaat.
bClockWise
TRUE geeft aan dat +90 graden draaien; FALSE geeft aan dat -90 graden draaien.