Aracılığıyla paylaş


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 TRUEDrawShadow 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 DrawShadowgelecek ç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 iseNULLDrawShadow, 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_ONEH için 0,25 değeri ile HLStoRGB_TWO90 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_ONEH için 0,25 değeri ile HLStoRGB_TWO90 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.

Açıklamalar

Ayrıca bkz.

Hiyerarşi Grafiği
Sınıflar