CDrawingManager Sınıfı
CDrawingManager
sınıfı karmaşık çizim algoritmaları uygular.
Sözdizimi
class CDrawingManager : public CObject
Üyeler
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
CDrawingManager::CDrawingManager | Bir CDrawingManager nesne oluşturur. |
CDrawingManager::~CDrawingManager |
Yıkıcı. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CDrawingManager::CreateBitmap_32 | Uygulamaların doğrudan yazabileceği 32 bit cihazdan bağımsız bit eşlem (DIB) oluşturur. |
CDrawingManager::D rawAlpha | Saydam veya yarı saydam piksellere sahip bit eşlemleri görüntüler. |
CDrawingManager::D rawRotated | Verilen dikdörtgenin içindeki kaynak DC içeriğini +/- 90 derece döndürür |
CDrawingManager::D rawEllipse | Sağlanan dolgu ve kenarlık renkleriyle üç nokta çizer. |
CDrawingManager::D rawGradientRing | Bir halka çizer ve bir renk gradyanı ile doldurur. |
CDrawingManager::D rawLine, CDrawingManager::D rawLineA | Bir çizgi çizer. |
CDrawingManager::D rawRect | Sağlanan dolgu ve kenarlık renkleriyle bir dikdörtgen çizer. |
CDrawingManager::D rawShadow | Dikdörtgen bir alan için gölge çizer. |
CDrawingManager::Fill4ColorsGradient | Dikdörtgen bir alanı iki renk gradyanı ile doldurur. |
CDrawingManager::FillGradient | Dikdörtgen bir alanı belirtilen renk gradyanı ile doldurur. |
CDrawingManager::FillGradient2 | Dikdörtgen bir alanı belirtilen renk gradyanı ile doldurur. Gradyan renk değişikliğinin yönü de belirtilir. |
CDrawingManager::GrayRect | Dikdörtgeni belirtilen gri renkle doldurur. |
CDrawingManager::HighlightRect | Dikdörtgen bir alanı vurgular. |
CDrawingManager::HLStoRGB_ONE | Bir rengi HLS gösteriminden RGB gösterimine dönüştürür. |
CDrawingManager::HLStoRGB_TWO | Bir rengi HLS gösteriminden RGB gösterimine dönüştürür. |
CDrawingManager::HSVtoRGB | Bir rengi HSV gösteriminden RGB gösterimine dönüştürür. |
CDrawingManager::HuetoRGB | Ton değerini kırmızı, yeşil veya mavi bir bileşene dönüştüren yardımcı yöntem. |
CDrawingManager::MirrorRect | Dikdörtgen bir alanı çevirir. |
CDrawingManager::P ixelAlpha | Yarı saydam bir pikselin son rengini belirleyen yardımcı yöntem. |
CDrawingManager::P repareShadowMask | Gölge olarak kullanılabilecek bir bit eşlem oluşturur. |
CDrawingManager::RGBtoHSL | Bir rengi RGB gösteriminden HSL gösterimine dönüştürür. |
CDrawingManager::RGBtoHSV | Bir rengi RGB gösteriminden HSV gösterimine dönüştürür. |
CDrawingManager::SetAlphaPixel | Bit eşlem içinde kısmen saydam bir pikseli renklendiren yardımcı yöntem. |
CDrawingManager::SetPixel | Bit eşlemdeki tek bir pikseli belirtilen renge değiştiren yardımcı yöntem. |
CDrawingManager::SmartMixColors | İki rengi ağırlıklı bir orana göre birleştirir. |
Açıklamalar
CDrawingManager
sınıfı gölgeler, renk gradyanları ve vurgulanmış dikdörtgenler çizmeye yönelik işlevler sağlar. Ayrıca alfa-karıştırma gerçekleştirir. Uygulamanızın kullanıcı arabirimini doğrudan değiştirmek için bu sınıfı kullanabilirsiniz.
Devralma Hiyerarşisi
CObject
CDrawingManager
Gereksinimler
Üst bilgi: afxdrawmanager.h
CDrawingManager::CDrawingManager
CDrawingManager nesnesi oluşturur.
CDrawingManager(CDC& dc);
Parametreler
Dc
[in] Cihaz bağlamı başvurusu. , CDrawingManager
çizim için bu bağlamı kullanır.
CDrawingManager::CreateBitmap_32
Uygulamaların doğrudan yazabileceği 32 bit cihazdan bağımsız bit eşlem (DIB) oluşturur.
static HBITMAP __stdcall CreateBitmap_32(
const CSize& size,
void** pBits);
static HBITMAP __stdcall CreateBitmap_32(
HBITMAP bitmap,
COLORREF clrTransparent = -1);
Parametreler
boyut
[in] Bit eşlem boyutunu gösteren bir CSize parametresi.
pBit'ler
[out] DIB'nin bit değerlerinin konumunu alan bir veri işaretçisi işaretçisi.
bit eşlem
Özgün bit eşlem tutamacı
clrTransparent
Özgün bit eşlemin saydam rengini belirten RGB değeri.
Dönüş Değeri
Bu yöntem başarılı olursa yeni oluşturulan DIB bit eşleminin tanıtıcısı; aksi takdirde NULL.
Açıklamalar
DIB bit eşlem oluşturma hakkında daha fazla bilgi için bkz . CreateDIBSection.
CDrawingManager::D rawAlpha
Saydam veya yarı saydam piksellere sahip bit eşlemleri görüntüler.
void DrawAlpha(
CDC* pDstDC,
const CRect& rectDst,
CDC* pSrcDC,
const CRect& rectSrc);
Parametreler
pDstDC
[in] Hedef için cihaz bağlamı işaretçisi.
rectDst
[in] Hedef dikdörtgen.
pSrcDC
[in] Kaynak için cihaz bağlamı işaretçisi.
rectSrc
[in] Kaynak dikdörtgen.
Açıklamalar
Bu yöntem, iki bit eşlem için alfa karıştırma gerçekleştirir. Alfa karıştırma hakkında daha fazla bilgi için bkz . Windows SDK'sında AlphaBlend .
CDrawingManager::D rawEllipse
Sağlanan dolgu ve kenarlık renkleriyle üç nokta çizer.
void DrawEllipse(
const CRect& rect,
COLORREF clrFill,
COLORREF clrLine);
Parametreler
Rect
[in] Üç nokta için sınırlayıcı dikdörtgen.
clrFill
[in] Bu yöntemin üç noktayı doldurmak için kullandığı renk.
clrLine
[in] Bu yöntemin üç noktanın kenarlığı olarak kullandığı renk.
Açıklamalar
Bu yöntem, herhangi bir renk -1 olarak ayarlandıysa üç nokta çizmeden döndürür. Sınırlayıcı dikdörtgenin herhangi bir boyutu 0 ise, üç nokta çizmeden de döndürür.
CDrawingManager::D rawGradientRing
Bir halka çizer ve bir renk gradyanı ile doldurur.
BOOL DrawGradientRing(
CRect rect,
COLORREF colorStart,
COLORREF colorFinish,
COLORREF colorBorder,
int nAngle,
int nWidth,
COLORREF clrFace = (COLORREF)-1);
Parametreler
Rect
[in] Gradyan halkasının sınırını belirten bir CRect parametresi.
colorStart
[in] Gradyan için ilk renk.
colorFinish
[in] Gradyan için son renk.
colorBorder
[in] Kenarlığı rengi.
nAngle
[in] İlk gradyan çizim açısını belirten parametre. Bu değer 0 ile 360 arasında olmalıdır.
nWidth
[in] Halka için kenarlık genişliği.
clrFace
[in] Halkanın iç rengi.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Rect tarafından tanımlanan dikdörtgen en az 5 piksel genişliğinde ve 5 piksel yüksekliğinde olmalıdır.
CDrawingManager::D rawLine, CDrawingManager::D rawLineA
Bir çizgi çizer.
void DrawLine(
int x1,
int y1,
int x2,
int y2,
COLORREF clrLine);
void DrawLineA(
double x1,
double y1,
double x2,
double y2,
COLORREF clrLine);
Parametreler
x1
[in] Çizginin başladığı x koordinatı.
y1
[in] Çizginin başladığı y koordinatı.
x2
[in] Çizginin bittiği x koordinatı.
y2
[in] Çizginin sona erdiği y koordinatı.
clrLine
[in] Çizginin rengi.
Açıklamalar
ClrLine -1 değerine eşitse bu yöntem başarısız olur.
CDrawingManager::D rawRect
Sağlanan dolgu ve kenarlık renkleriyle bir dikdörtgen çizer.
void DrawRect(
const CRect& rect,
COLORREF clrFill,
COLORREF clrLine);
Parametreler
Rect
[in] Dikdörtgenin sınırları.
clrFill
[in] Bu yöntemin dikdörtgeni doldurmak için kullandığı renk.
clrLine
[in] Bu yöntemin dikdörtgenin kenarlığı için kullandığı renk.
Açıklamalar
Bu yöntem, herhangi bir renk -1 olarak ayarlandıysa dikdörtgen çizmeden döndürür. Ayrıca dikdörtgenin herhangi bir boyutu 0 olduğunda da döndürür.
CDrawingManager::D rawShadow
Dikdörtgen bir alan için gölge çizer.
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);
Parametreler
Rect
[in] Uygulamanızda dikdörtgen bir alan. Çizim yöneticisi bu alanın altına bir gölge çizer.
nDepth
[in] Gölgenin genişliği ve yüksekliği.
iMinBrightness
[in] Gölgenin minimum parlaklığı.
iMaxBrightness
[in] Gölgenin maksimum parlaklığı.
pBmpSaveBottom
[in] Gölgenin alt kısmı için görüntüyü içeren bit eşlem işaretçisi.
pBmpSaveRight
[in] Dikdörtgenin sağ tarafına çizilen gölgenin görüntüsünü içeren bit eşlem işaretçisi.
clrBase
[in] Gölgenin rengi.
bRightShadow
[in] Gölgenin nasıl çizildiğini gösteren boole parametresi. bRightShadow ise TRUE
DrawShadow
dikdörtgenin sağ tarafına bir gölge çizer.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
pBmpSaveBottom ve pBmpSaveRight parametrelerini kullanarak alt ve sağ gölgeler için iki geçerli bit eşlem sağlayabilirsiniz. Bu CBitmap nesnelerinin eklenmiş bir GDI nesnesi varsa, DrawShadow
bu bit eşlemleri gölge olarak kullanır. Parametrelerin CBitmap
eklenmiş bir GDI nesnesi yoksa, DrawShadow
gölgeyi çizer ve bit eşlemleri parametrelere ekler. 'a DrawShadow
gelecek çağrılarda, çizim işlemini hızlandırmak için bu bit eşlemleri sağlayabilirsiniz. Sınıf ve GDI nesneleri hakkında CBitmap
daha fazla bilgi için bkz . Grafik Nesneleri.
Bu parametrelerden biri iseNULL
DrawShadow
, gölgeyi otomatik olarak çizer.
bRightShadow değerini YANLIŞ olarak ayarlarsanız, gölge dikdörtgen alanın altına ve soluna çizilir.
Örnek
Aşağıdaki örnekte sınıfının yönteminin DrawShadow
nasıl kullanılacağı gösterilmektedir CDrawingManager
. Bu kod parçacığı, Prop Sheet Demo örneğinin bir parçasıdır.
// 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
Dikdörtgen bir alanı iki renk gradyanı ile doldurur.
void Fill4ColorsGradient(
CRect rect,
COLORREF colorStart1,
COLORREF colorFinish1,
COLORREF colorStart2,
COLORREF colorFinish2,
BOOL bHorz = TRUE,
int nPercentage = 50);
Parametreler
Rect
[in] Doldurulacak dikdörtgen.
colorStart1
[in] İlk renk gradyanı için başlangıç rengi.
colorFinish1
[in] İlk renk gradyanı için son renk.
colorStart2
[in] İkinci renk gradyanı için başlangıç rengi.
colorFinish2
[in] İkinci renk gradyanı için son renk.
bHorz
[in] Renklerin yatay mı yoksa dikey gradyan mı olduğunu Fill4ColorsGradient
gösteren Boole parametresi. DOĞRU, yatay gradyanı gösterir.
nPercentage
[in] 0-100 arası bir tamsayı. Bu değer, dikdörtgenin ilk renk gradyanı ile doldurulacak yüzdesini gösterir.
Açıklamalar
Dikdörtgen iki renk gradyanı ile doldurulduğunda, bHorz değerine bağlı olarak birbirlerinin üstünde veya yanında bulunurlar. Her renk gradyanı CDrawingManager::FillGradient yöntemiyle bağımsız olarak hesaplanır.
nPercentage değeri 0'dan küçükse veya 100'den fazlaysa bu yöntem onay hatası oluşturur.
CDrawingManager::FillGradient
Dikdörtgen bir alanı belirtilen renk gradyanı ile doldurur.
void FillGradient(
CRect rect,
COLORREF colorStart,
COLORREF colorFinish,
BOOL bHorz = TRUE,
int nStartFlatPercentage = 0,
int nEndFlatPercentage = 0);
Parametreler
Rect
[in] Doldurulacak dikdörtgen alan.
colorStart
[in] Gradyan için ilk renk.
colorFinish
[in] Gradyan için son renk.
bHorz
[in] Yatay mı yoksa dikey gradyan mı FillGradient
çizilmesi gerektiğini belirten boole parametresi.
nStartFlatPercentage
[in] Gradyanı başlatmadan önce colorStart ile doldurulan FillGradient
dikdörtgenin yüzdesi.
nEndFlatPercentage
[in] Gradyan tamamlandıktan sonra colorFinish ile doldurulan FillGradient
dikdörtgen yüzdesi.
Örnek
Aşağıdaki örnekte sınıfının yönteminin FillGradient
nasıl kullanılacağı gösterilmektedir CDrawingManager
. Bu kod parçacığı MS Office 2007 Tanıtım örneğinin bir parçasıdır.
// CRect rectScreen
// CDrawingManager dm
dm.FillGradient(rectScreen, RGB(114, 125, 152), RGB(178, 185, 202), TRUE);
CDrawingManager::FillGradient2
Dikdörtgen bir alanı belirtilen renk gradyanı ile doldurur.
void FillGradient2 (
CRect rect,
COLORREF colorStart,
COLORREF colorFinish,
int nAngle = 0);
Parametreler
Rect
[in] Doldurulacak dikdörtgen alan.
colorStart
[in] Gradyanın ilk rengi.
colorFinish
[in] Gradyanın son rengi.
nAngle
[in] 0 ile 360 arasında bir tamsayı. Bu parametre renk gradyanının yönünü belirtir.
Açıklamalar
Renk gradyanının yönünü belirtmek için nAngle kullanın. Renk gradyanının yönünü belirttiğinizde, renk gradyanının nerede başlayacağını da belirtirsiniz. nAngle için 0 değeri gradyanın dikdörtgenin en üstünden başladığını gösterir. nAngle arttıkça gradyan için başlangıç konumu, açıya göre saat yönünün tersine hareket eder.
Örnek
Aşağıdaki örnekte sınıfının yönteminin FillGradient2
nasıl kullanılacağı gösterilmektedir CDrawingManager
. Bu kod parçacığı, Yeni Denetimler örneğinin bir parçasıdır.
// 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
Dikdörtgeni belirtilen gri renkle doldurur.
BOOL GrayRect(
CRect rect,
int nPercentage = -1,
COLORREF clrTransparent = (COLORREF)-1,
COLORREF clrDisabled = (COLORREF)-1);
Parametreler
Rect
[in] Doldurulacak dikdörtgen alan.
nPercentage
[in] Dikdörtgende istediğiniz gri yüzdesi.
clrTransparent
[in] Saydam renk.
clrDisabled
[in] nPercentage değeri -1 olarak ayarlandıysa, bu yöntemin doygunluğu kaldırma için kullandığı renk.
Dönüş Değeri
Yöntem başarılı olursa TRUE; aksi takdirde YANLIŞ.
Açıklamalar
nPercentage parametresi için daha düşük bir değer daha koyu bir renk gösterir.
nPercentage için en yüksek değer 200'dür. 200'den büyük bir değer dikdörtgenin görünümünü değiştirmez. Değer -1 ise, bu yöntem dikdörtgenin doygunluğunu sınırlamak için clrDisabled kullanır.
CDrawingManager::HighlightRect
Dikdörtgen bir alanı vurgular.
BOOL HighlightRect(
CRect rect,
int nPercentage = -1,
COLORREF clrTransparent = (COLORREF)-1,
int nTolerance = 0,
COLORREF clrBlend = (COLORREF)-1);
Parametreler
Rect
[in] Vurgulamak için dikdörtgen bir alan.
nPercentage
[in] Vurgunun ne kadar saydam olması gerektiğini gösteren yüzde.
clrTransparent
[in] Saydam renk.
nTolerance
[in] Renk toleransını gösteren 0 ile 255 arasında bir tamsayı.
clrBlend
[in] Karıştırma için temel renk.
Dönüş Değeri
Yöntem başarılı olursa TRUE; aksi takdirde YANLIŞ.
Açıklamalar
nPercentage 0 ile 99 arasındaysa alfa HighlightRect
karıştırma algoritmasını kullanır. Alfa karıştırma hakkında daha fazla bilgi için bkz . Alfa Karıştırma Çizgileri ve Dolguları. nPercentage -1 ise, bu yöntem varsayılan vurgu düzeyini kullanır. nPercentage 100 ise, bu yöntem hiçbir şey yapmaz ve TRUE döndürür.
yöntemi, dikdörtgen alanın vurgulanıp vurgulanmayacağını belirlemek için nTolerance parametresini kullanır. Dikdörtgeni vurgulamak için uygulamanızın arka plan rengi ile clrTransparent arasındaki fark, her renk bileşeninde (kırmızı, yeşil ve mavi) nTolerance değerinden küçük olmalıdır.
CDrawingManager::HLStoRGB_ONE
Bir rengi HLS gösteriminden RGB gösterimine dönüştürür.
static COLORREF __stdcall HLStoRGB_ONE(
double H,
double L,
double S);
Parametreler
H
[in] Rengin tonunu temsil eden 0 ile 1 arasında bir sayı.
L
[in] Rengin parlaklığını gösteren 0 ile 1 arasında bir sayı.
S
[in] Rengin doygunluğunu gösteren 0 ile 1 arasında bir sayı.
Dönüş Değeri
Sağlanan HLS renginin RGB gösterimi.
Açıklamalar
Bir renk HSV (ton, doygunluk ve değer), HSL (ton, doygunluk ve parlaklık) veya RGB (kırmızı, yeşil ve mavi) olarak gösterilebilir. Rengin farklı gösterimleri hakkında daha fazla bilgi için bkz . Renk.
Bu yöntem ve CDrawingManager::HLStoRGB_TWO
yöntemi aynı işlemi gerçekleştirir, ancak H parametresi için farklı değerler gerektirir. Bu yöntemde H, dairenin bir yüzdesidir. yönteminde CDrawingManager::HLStoRGB_TWO
H, her ikisi de kırmızıyı temsil eden 0 ile 360 arasında bir derece değeridir. Örneğin, ile, HLStoRGB_ONE
H için 0,25 değeri ile HLStoRGB_TWO
90 değerine eşdeğerdir.
CDrawingManager::HLStoRGB_TWO
Bir rengi HLS gösteriminden RGB gösterimine dönüştürür.
static COLORREF __stdcall HLStoRGB_TWO(
double H,
double L,
double S);
Parametreler
H
[in] Rengin tonunu temsil eden 0 ile 360 arasında bir sayı.
L
[in] Rengin parlaklığını gösteren 0 ile 1 arasında bir sayı.
S
[in] Rengin doygunluğunu gösteren 0 ile 1 arasında bir sayı.
Dönüş Değeri
Sağlanan HLS renginin RGB gösterimi.
Açıklamalar
Bir renk HSV (ton, doygunluk ve değer), HSL (ton, doygunluk ve parlaklık) veya RGB (kırmızı, yeşil ve mavi) olarak gösterilebilir. Rengin farklı gösterimleri hakkında daha fazla bilgi için bkz . Renk.
Bu yöntem ve CDrawingManager::HLStoRGB_ONE yöntemi aynı işlemi gerçekleştirir, ancak H parametresi için farklı değerler gerektirir. Bu yöntemde H, her ikisi de kırmızıyı temsil eden 0 ile 360 arasında bir derece değeridir. CDrawingManager::HLStoRGB_ONE yönteminde H, dairenin bir yüzdesidir. Örneğin, ile, HLStoRGB_ONE
H için 0,25 değeri ile HLStoRGB_TWO
90 değerine eşdeğerdir.
CDrawingManager::HSVtoRGB
Bir rengi HSV gösteriminden RGB gösterimine dönüştürür.
static COLORREF __stdcall HSVtoRGB(
double H,
double S,
double V);
Parametreler
H
[in] Rengin tonunu gösteren 0 ile 360 arasında bir sayı.
S
[in] Rengin doygunluğunu gösteren 0 ile 1 arasında bir sayı.
V
[in] Rengin değerini gösteren 0 ile 1 arasında bir sayı.
Dönüş Değeri
Sağlanan HSV renginin RGB gösterimi.
Açıklamalar
Bir renk HSV (ton, doygunluk ve değer), HSL (ton, doygunluk ve parlaklık) veya RGB (kırmızı, yeşil ve mavi) olarak gösterilebilir. Rengin farklı gösterimleri hakkında daha fazla bilgi için bkz . Renk.
CDrawingManager::HuetoRGB
Ton değerini kırmızı, yeşil veya mavi bir bileşene dönüştürür.
static double __stdcall HuetoRGB(
double m1,
double m2,
double h);
static BYTE __stdcall HueToRGB(
float rm1,
float rm2,
float rh);
Parametreler
m1
[in] Bkz. Açıklamalar.
m2
[in] Bkz. Açıklamalar.
h
[in] Bkz. Açıklamalar.
rm1
[in] Bkz. Açıklamalar.
rm2
[in] Bkz. Açıklamalar.
Rh
[in] Bkz. Açıklamalar.
Dönüş Değeri
Sağlanan ton için tek tek kırmızı, yeşil veya mavi bileşen.
Açıklamalar
Bu yöntem, sınıfın CDrawingManager
HSV veya HSL gösterimindeki bir rengin tek tek kırmızı, yeşil ve mavi bileşenlerini hesaplamak için kullandığı yardımcı bir yöntemdir. Bu yöntem doğrudan programcı tarafından çağrılmak üzere tasarlanmamıştır. Giriş parametreleri, dönüştürme algoritmasına bağlı değerlerdir.
HSV veya HSL rengini RGB gösterimine dönüştürmek için aşağıdaki yöntemlerden birini çağırın:
CDrawingManager::MirrorRect
Dikdörtgen bir alanı çevirir.
void MirrorRect(
CRect rect,
BOOL bHorz = TRUE);
Parametreler
Rect
[in] Çevrilecek alanın sınırlayıcı dikdörtgeni.
bHorz
[in] Dikdörtgenin yatay mı yoksa dikey mi çevrildiğini gösteren boole parametresi.
Açıklamalar
Bu yöntem, sınıfına ait CDrawingManager
cihaz bağlamının herhangi bir alanını çevirebilir. bHorz TRUE olarak ayarlanırsa, bu yöntem alanı yatay olarak çevirir. Aksi takdirde, alanı dikey olarak çevirir.
CDrawingManager::P ixelAlpha
Yarı saydam piksel için son rengi hesaplar.
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);
Parametreler
srcPixel
[in] Pikselin başlangıç rengi.
yüzde
[in] Saydamlık yüzdesini temsil eden 0 ile 100 arasında bir sayı. 100 değeri, ilk rengin tamamen saydam olduğunu gösterir.
yüzdeR
[in] Kırmızı bileşen için saydamlık yüzdesini temsil eden 0 ile 100 arasında bir sayı.
yüzdeG
[in] Yeşil bileşen için saydamlık yüzdesini temsil eden 0 ile 100 arasında bir sayı.
yüzdeB
[in] Mavi bileşen için saydamlık yüzdesini temsil eden 0 ile 100 arasında bir sayı.
dstPixel
[in] Pikselin temel rengi.
Dönüş Değeri
Yarı saydam pikselin son rengi.
Açıklamalar
Bu, yarı saydam bit eşlemleri renklendirmeye yönelik bir yardımcı sınıftır ve doğrudan programcı tarafından çağrılmak üzere tasarlanmamıştır.
Yöntemin dstPixel içeren sürümünü kullandığınızda, son renk dstPixel ve srcPixel'in bir bileşimidir. srcPixel rengi, dstPixel'in temel rengi üzerinde kısmen saydam olan renktir.
CDrawingManager::P repareShadowMask
Gölge olarak kullanılabilecek bir bit eşlem oluşturur.
static HBITMAP __stdcall PrepareShadowMask (
int nDepth,
COLORREF clrBase,
int iMinBrightness = 0,
int iMaxBrightness = 100);
Parametreler
nDepth
[in] Gölgenin genişliği ve yüksekliği.
clrBase
[in] Gölgenin rengi.
iMinBrightness
[in] Gölgenin minimum parlaklığı.
iMaxBrightness
[in] Gölgenin maksimum parlaklığı.
Dönüş Değeri
Bu yöntem başarılı olursa oluşturulan bit eşlem için tanıtıcı; aksi takdirde NULL.
Açıklamalar
nDepth 0 olarak ayarlanırsa, bu yöntemden çıkar ve NULL döndürür. nDepth değeri 3'ten küçükse, gölgenin genişliği ve yüksekliği 3 piksel olarak ayarlanır.
CDrawingManager::RGBtoHSL
Bir rengi kırmızı, yeşil ve mavi (RGB) gösteriminden ton, doygunluk ve hafiflik (HSL) gösterimine dönüştürür.
static void __stdcall RGBtoHSL(
COLORREF rgb,
double* H,
double* S,
double* L);
Parametreler
RGB
[in] RGB değerlerindeki renk.
H
[out] Yöntemin renk tonunu depoladığı çift işaretçi.
S
[out] Yöntemin renk için doygunluğu depoladığı bir çift işaretçi.
L
[out] Yöntemin renk için açıklığı depoladığı bir çift işaretçi.
Açıklamalar
Bir renk HSV (ton, doygunluk ve değer), HSL (ton, doygunluk ve parlaklık) veya RGB (kırmızı, yeşil ve mavi) olarak gösterilebilir. Rengin farklı gösterimleri hakkında daha fazla bilgi için bkz . Renk.
H için döndürülen değer, hem 0 hem de 1'in kırmızıyı temsil ettiği 0 ile 1 arasında bir kesir olarak temsil edilir. S ve L için döndürülen değerler 0 ile 1 arasındaki sayılardır.
CDrawingManager::RGBtoHSV
Bir rengi RGB gösteriminden HSV gösterimine dönüştürür.
static void __stdcall RGBtoHSV(
COLORREF rgb,
double* H,
double* S,
double* V);
Parametreler
RGB
[in] RGB gösteriminde dönüştürülecek renk.
H
[out] Bu yöntemin rengin elde edilen tonunu depoladığı bir çift işaretçi.
S
[out] Bu yöntemin renk için elde edilen doygunluğu depoladığı bir çift işaretçi.
V
[out] Bu yöntemin renk için elde edilen değeri depoladığı bir çift işaretçi.
Açıklamalar
Bir renk HSV (ton, doygunluk ve değer), HSL (ton, doygunluk ve parlaklık) veya RGB (kırmızı, yeşil ve mavi) olarak gösterilebilir. Rengin farklı gösterimleri hakkında daha fazla bilgi için bkz . Renk.
H için döndürülen değer, hem 0 hem de 360'ın kırmızıyı gösterdiği 0 ile 360 arasında bir sayıdır. S ve V için dönüş değerleri 0 ile 1 arasında sayılardır.
CDrawingManager::SetAlphaPixel
Bit eşlem içinde saydam bir pikseli renkler.
static void __stdcall SetAlphaPixel(
COLORREF* pBits,
CRect rect,
int x,
int y,
int percent,
int iShadowSize,
COLORREF clrBase = (COLORREF)-1,
BOOL bIsRight = TRUE);
Parametreler
pBit'ler
[in] Bit eşlem için bit değerlerinin işaretçisi.
Rect
[in] Uygulamanızda dikdörtgen bir alan. Çizim yöneticisi bu alanın altına ve sağındaki bir gölge çizer.
x
[in] Pikselin renk yatay koordinatı.
y
[in] Pikselin renk dikey koordinatı.
yüzde
[in] Saydamlık yüzdesi.
iShadowSize
[in] Gölgenin genişliği ve yüksekliği.
clrBase
[in] Gölgenin rengi.
bIsRight
[in] Hangi pikselin renklendirildiğini gösteren Boole parametresi. Daha fazla bilgi için Açıklamalar bölümüne bakın.
Açıklamalar
Bu yöntem, CDrawingManager::D rawShadow yöntemi tarafından kullanılan bir yardımcı yöntemdir. Gölge çizmek istiyorsanız bunun yerine arama CDrawingManager::DrawShadow
yapmanızı öneririz.
bIsRight TRUE olarak ayarlanırsa, renk pikseli rect'in sağ kenarından x piksel ölçülür. YANLIŞ ise, renk pikseli, düzeltmenin sol kenarından x piksel ölçülür.
CDrawingManager::SetPixel
Bit eşlem içindeki tek bir pikseli belirtilen renge değiştirir.
static void __stdcall SetPixel(
COLORREF* pBits,
int cx,
int cy,
int x,
int y,
COLORREF color);
Parametreler
pBit'ler
[in] Bit eşlem bit değerlerinin işaretçisi.
cx
[in] Bit eşlem toplam genişliği.
Cy
[in] Bit eşlem toplam yüksekliği.
x
[in] Bit eşlem içindeki pikselin değiştireceği x koordinatı.
y
[in] Bit eşlemdeki pikselin değiştireceği y koordinatı.
Renk
[in] Sağlanan koordinatlar tarafından tanımlanan pikselin yeni rengi.
CDrawingManager::SmartMixColors
İki rengi ağırlıklı bir orana göre birleştirir.
static COLORREF __stdcall SmartMixColors(
COLORREF color1,
COLORREF color2,
double dblLumRatio = 1.,
int k1 = 1,
int k2 = 1);
Parametreler
renk1
[in] Karıştırılması gereken ilk renk.
color2
[in] Karıştırılması gereken ikinci renk.
dblLumRatio
[in] Yeni rengin parlaklık oranı. SmartMixColors
son rengi belirlemeden önce karışık rengin parlaklığını bu oran ile çarpar.
k1
[in] İlk rengin ağırlıklı oranı.
k2
[in] İkinci renk için ağırlıklı oran.
Dönüş Değeri
Sağlanan renklerin ağırlıklı bir karışımını temsil eden renk.
Açıklamalar
K1 veya k2 sıfırdan küçükse bu yöntem hatayla başarısız olur. Bu parametrelerin her ikisi de 0 olarak ayarlanırsa, yöntemi döndürür RGB(0, 0, 0)
.
Ağırlıklı oran şu formülle hesaplanır: (color1 * k1 + color2 * k2)/(k1 + k2). Ağırlıklı oran belirlendikten sonra yöntem, karışık rengin parlaklığını hesaplar. Daha sonra parlaklığı dblLumRatio ile çarpar. Değer 1,0'dan büyükse, yöntem karma rengin parlaklığını yeni değere ayarlar. Aksi takdirde parlaklık 1,0 olarak ayarlanır.
CDrawingManager::D rawRotated
Verilen dikdörtgenin içindeki bir kaynak DC içeriğini 90 derece döndürür.
void DrawRotated(
CRect rectDest,
CDC& dcSrc,
BOOL bClockWise);
Parametreler
rectDest
Hedef dikdörtgen.
dcSrc
Kaynak cihaz bağlamı.
bClockWise
TRUE, +90 derece döndürdüğünü gösterir; YANLIŞ, -90 derece döndürdüğünü gösterir.