共用方式為


CDrawingManager 類別

類別 CDrawingManager 會實作複雜的繪圖演算法。

語法

class CDrawingManager : public CObject

成員

公用建構函式

名稱 描述
CDrawingManager::CDrawingManager 建構 CDrawingManager 物件。
CDrawingManager::~CDrawingManager 解構函式。

公用方法

名稱 描述
CDrawingManager::CreateBitmap_32 建立應用程式可以直接寫入的 32 位裝置獨立點陣圖 (DIB)。
CDrawingManager::D rawAlpha 顯示具有透明或半透明圖元的點陣圖。
CDrawingManager::D rawRotated 以 +/- 90 度旋轉指定矩形內的來源 DC 內容
CDrawingManager::D rawEllipse 使用提供的填滿和框線色彩繪製橢圓形。
CDrawingManager::D rawGradientRing 繪製環形,並填滿色彩漸層。
CDrawingManager::D rawLine、CDrawingManager::D rawLineA 繪製線條。
CDrawingManager::D rawRect 使用提供的填滿和框線色彩繪製矩形。
CDrawingManager::D rawShadow 繪製矩形區域的陰影。
CDrawingManager::Fill4ColorsGradient 以兩個色彩漸層填滿矩形區域。
CDrawingManager::FillGradient 以指定的色彩漸層填滿矩形區域。
CDrawingManager::FillGradient2 以指定的色彩漸層填滿矩形區域。 也會指定漸層色彩變更的方向。
CDrawingManager::GrayRect 以指定的灰色填滿矩形。
CDrawingManager::HighlightRect 反白顯示矩形區域。
CDrawingManager::HLStoRGB_ONE 將色彩從 HLS 表示轉換成 RGB 標記法。
CDrawingManager::HLStoRGB_TWO 將色彩從 HLS 表示轉換成 RGB 標記法。
CDrawingManager::HSVtoRGB 將色彩從 HSV 表示轉換成 RGB 標記法。
CDrawingManager::HuetoRGB 將色調值轉換成紅色、綠色或藍色元件的 Helper 方法。
CDrawingManager::MirrorRect 翻轉矩形區域。
CDrawingManager::P ixelAlpha 協助程式方法,決定半透明圖元的最終色彩。
CDrawingManager::P repareShadowMask 建立可用來做為陰影的點陣圖。
CDrawingManager::RGBtoHSL 將色彩從 RGB 表示轉換成 HSL 標記法。
CDrawingManager::RGBtoHSV 將色彩從 RGB 表示轉換為 HSV 標記法。
CDrawingManager::SetAlphaPixel 將點陣圖中部分透明圖元著色的 Helper 方法。
CDrawingManager::SetPixel 協助程式方法,將點陣圖中的單一圖元變更為指定的色彩。
CDrawingManager::SmartMixColors 根據加權比例結合兩種色彩。

備註

類別 CDrawingManager 提供繪製陰影、色彩漸層和反白顯示矩形的函式。 它也會執行 Alpha 混合。 您可以使用這個類別直接變更應用程式的 UI。

繼承階層架構

CObject
CDrawingManager

需求

標頭: afxdrawmanager.h

CDrawingManager::CDrawingManager

建構 CDrawingManager 物件。

CDrawingManager(CDC& dc);

參數

dc
[in]裝置內容的參考。 會 CDrawingManager 使用此內容來繪製。

CDrawingManager::CreateBitmap_32

建立應用程式可以直接寫入的 32 位裝置獨立點陣圖 (DIB)。

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

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

參數

size
[in] 指出點陣圖大小的 CSize 參數。

pBits
[out]接收 DIB 位值位置之資料指標的指標。

點陣圖
原始點陣圖的控制碼

clrTransparent
指定原始點陣圖透明色彩的 RGB 值。

傳回值

如果此方法成功,則為新建立之 DIB 點陣圖的控制碼;否則為 Null。

備註

如需如何建立 DIB 點陣圖的詳細資訊,請參閱 CreateDIBSection

CDrawingManager::D rawAlpha

顯示具有透明或半透明圖元的點陣圖。

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

參數

pDstDC
[in]目的地之裝置內容的指標。

rectDst
[in]目的矩形。

pSrcDC
[in]來源之裝置內容的指標。

rectSrc
[in]來源矩形。

備註

這個方法會針對兩個位圖執行 Alpha 混合。 如需 Alpha 混合的詳細資訊,請參閱 Windows SDK 中的 AlphaBlend

CDrawingManager::D rawEllipse

使用提供的填滿和框線色彩繪製橢圓形。

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

參數

矩形
[in]橢圓形的周框。

clrFill
[in]這個方法用來填滿橢圓形的色彩。

clrLine
[in]這個方法使用的色彩是省略號的框線。

備註

如果任一色彩設定為 -1,這個方法會傳回而不繪製橢圓形。 如果周框的任一維度為 0,它也會傳回而不繪製橢圓形。

CDrawingManager::D rawGradientRing

繪製環形,並填滿色彩漸層。

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

參數

矩形
[in]指定 漸層環形界限的 CRect 參數。

colorStart
[in]漸層的第一個色彩。

colorFinish
[in]漸層的最後一個色彩。

colorBorder
[in]框線的色彩。

nAngle
[in]指定初始漸層繪製角度的參數。 此值應介於 0 到 360 之間。

nWidth
[in]環形框線的寬度。

clrFace
[in]環形內部的色彩。

傳回值

如果成功則為非零;否則為 0。

備註

矩形 定義的 矩形必須至少為 5 圖元寬和 5 圖元高。

CDrawingManager::D rawLine、CDrawingManager::D rawLineA

繪製線條。

void DrawLine(
    int x1,
    int y1,
    int x2,
    int y2,
    COLORREF clrLine);

void DrawLineA(
    double x1,
    double y1,
    double x2,
    double y2,
    COLORREF clrLine);

參數

x1
[in]線條開始位置的 x 座標。

y1
[in]線條開始位置的 Y 座標。

x2
[in]線條結尾處的 x 座標。

y2
[in]線條結尾的 Y 座標。

clrLine
[in]線條的色彩。

備註

如果 clrLine 等於 -1,這個方法就會失敗。

CDrawingManager::D rawRect

使用提供的填滿和框線色彩繪製矩形。

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

參數

矩形
[in]矩形的界限。

clrFill
[in]這個方法用來填滿矩形的色彩。

clrLine
[in]這個方法用於矩形框線的色彩。

備註

如果任一色彩設定為 -1,這個方法就會傳回而不繪製矩形。 如果矩形的任一維度為 0,它也會傳回 。

CDrawingManager::D rawShadow

繪製矩形區域的陰影。

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);

參數

矩形
[in]應用程式中的矩形區域。 繪圖管理員會在該區域底下繪製陰影。

nDepth
[in]陰影的寬度和高度。

iMinBrightness
[in]陰影的最小亮度。

iMaxBrightness
[in]陰影的最大亮度。

pBmpSaveBottom
[in]包含陰影下部影像之點陣圖的指標。

pBmpSaveRight
[in]點陣圖的指標,其中包含矩形右側所繪製陰影的影像。

clrBase
[in]陰影的色彩。

bRightShadow
[in]布林值參數,表示陰影的繪製方式。 如果 bRightShadow TRUEDrawShadow 則會在矩形右側繪製陰影。

傳回值

如果成功則為非零;否則為 0。

備註

您可以使用 pBmpSaveBottom pBmpSaveRight 參數 ,為底部和右陰影提供兩個有效的點陣圖。 如果這些 CBitmap 物件具有附加的 GDI 物件, DrawShadow 則會使用這些點陣圖作為陰影。 CBitmap如果參數沒有附加的 GDI 物件, DrawShadow 則會繪製陰影,並將點陣圖附加至參數。 在未來呼叫 DrawShadow 時,您可以提供這些點陣圖來加速繪製程式。 如需 類別和 GDI 物件的詳細資訊 CBitmap ,請參閱 繪圖物件

如果其中一個參數是 NULLDrawShadow 將會自動繪製陰影。

如果您將 bRightShadow 設定 為 FALSE,陰影將會繪製在矩形區域的下方和左邊。

範例

下列範例示範如何使用 DrawShadow 類別的 CDrawingManager 方法。 此程式碼片段是 Prop Sheet 示範範例 一部分。

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

以兩個色彩漸層填滿矩形區域。

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

參數

矩形
[in]要填滿的矩形。

colorStart1
[in]第一個色彩漸層的初始色彩。

colorFinish1
[in]第一個色彩漸層的最後色彩。

colorStart2
[in]第二個色彩漸層的初始色彩。

colorFinish2
[in]第二個色彩漸層的最終色彩。

bHorz
[in]布林值參數,指出水準或垂直漸層的 Fill4ColorsGradient 色彩。 TRUE 表示水準漸層。

nPercentage
[in]0-100 的整數。 這個值表示要填滿第一個色彩漸層的矩形百分比。

備註

當矩形填滿兩個色彩漸層時,會根據 bHorz 的值 ,分別位於彼此上方或彼此旁邊。 每個色彩漸層都是使用 CDrawingManager::FillGradient 方法 獨立計算。

如果 nPercentage 小於 0 或超過 100,這個方法會產生判斷提示失敗。

CDrawingManager::FillGradient

以指定的色彩漸層填滿矩形區域。

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

參數

矩形
[in]要填滿的矩形區域。

colorStart
[in]漸層的第一個色彩。

colorFinish
[in]漸層的最終色彩。

bHorz
[in]布林參數,指定是否 FillGradient 應該繪製水準或垂直漸層。

nStartFlatPercentage
[in]開始漸層之前填 FillGradient 滿 colorStart 的矩形百分比。

nEndFlatPercentage
[in]完成漸層之後填滿 colorFinish 的矩形 FillGradient 百分比。

範例

下列範例示範如何使用 FillGradient 類別的 CDrawingManager 方法。 此程式碼片段是 MS Office 2007 示範範例 一部分。

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

CDrawingManager::FillGradient2

以指定的色彩漸層填滿矩形區域。

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

參數

矩形
[in]要填滿的矩形區域。

colorStart
[in]漸層的第一個色彩。

colorFinish
[in]漸層的最後一個色彩。

nAngle
[in]介於 0 到 360 之間的整數。 此參數會指定色彩漸層的方向。

備註

使用 nAngle 指定色彩漸層的方向。 當您指定色彩漸層的方向時,也會指定色彩漸層開始的位置。 nAngle 的值為 0 ,表示漸層從矩形頂端開始。 當 nAngle 增加時,漸層的起始位置會根據角度以逆時針方向移動。

範例

下列範例示範如何使用 FillGradient2 類別的 CDrawingManager 方法。 此程式碼片段是新控制項範例 一部分。

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

以指定的灰色填滿矩形。

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

參數

矩形
[in]要填滿的矩形區域。

nPercentage
[in]您想要在矩形中的灰色百分比。

clrTransparent
[in]透明色彩。

clrDisabled
[in]如果 nPercentage 設定為 -1,則這個方法用於去飽和的色彩。

傳回值

如果方法成功,則為 TRUE;否則為 FALSE。

備註

對於參數 nPercentage ,較低的值表示較深的色彩。

nPercentage 最大值為 200。 大於 200 的值不會變更矩形的外觀。 如果值為 -1,這個方法會使用 clrDisabled 來限制矩形的飽和度。

CDrawingManager::HighlightRect

反白顯示矩形區域。

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

參數

矩形
[in]要反白顯示的矩形區域。

nPercentage
[in]指出反白顯示應有多透明百分比。

clrTransparent
[in]透明色彩。

nTolerance
[in]介於 0 到 255 之間的整數,表示色彩容錯。

clrBlend
[in]混合的基底色彩。

傳回值

如果方法成功,則為 TRUE;否則為 FALSE。

備註

如果 nPercentage 介於 0 到 99 之間, HighlightRect 請使用 Alpha 混合演算法。 如需 Alpha 混合的詳細資訊,請參閱 Alpha 混合線條和填滿 。 如果 nPercentage 是 -1,這個方法會使用預設醒目提示層級。 如果 nPercentage 為 100,這個方法不會執行任何動作並傳回 TRUE。

方法會使用參數 nTolerance 來判斷是否要反白顯示矩形區域。 若要反白顯示矩形,應用程式的背景色彩與 clrTransparent 之間的差異必須小於 nTolerance 的每個色彩元件(紅色、綠色和藍色)。

CDrawingManager::HLStoRGB_ONE

將色彩從 HLS 表示轉換成 RGB 標記法。

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

參數

H
[in]介於 0 到 1 之間的數位,代表色彩的色調。

L
[in]介於 0 和 1 之間的數位,表示色彩的亮度。

S
[in]介於 0 到 1 之間的數位,表示色彩的飽和度。

傳回值

提供的 HLS 色彩 RGB 標記法。

備註

色彩可以表示為 HSV(色調、飽和度和值)、HSL(色調、飽和度和亮度),或 RGB(紅色、綠色和藍色)。 如需不同色彩標記法的詳細資訊,請參閱 Color

此方法和 CDrawingManager::HLStoRGB_TWO 方法會執行相同的作業,但需要 H 參數的不同值 。 在此方法中, H 是圓形的百分比。 在 方法中 CDrawingManager::HLStoRGB_TWO H 是介於 0 到 360 之間的度值,這兩者都代表紅色。 例如,使用 HLStoRGB_ONE 時,H 的值為 0.25 相當於 90 的值。 HLStoRGB_TWO

CDrawingManager::HLStoRGB_TWO

將色彩從 HLS 表示轉換成 RGB 標記法。

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

參數

H
[in]介於 0 到 360 之間的數位,代表色彩的色調。

L
[in]介於 0 和 1 之間的數位,表示色彩的亮度。

S
[in]介於 0 到 1 之間的數位,表示色彩的飽和度。

傳回值

提供的 HLS 色彩 RGB 標記法。

備註

色彩可以表示為 HSV(色調、飽和度和值)、HSL(色調、飽和度和亮度),或 RGB(紅色、綠色和藍色)。 如需不同色彩標記法的詳細資訊,請參閱 Color

此方法和 CDrawingManager::HLStoRGB_ONE 方法會執行相同的作業,但需要 H 參數的不同值 。 在此方法中, H 是介於 0 到 360 之間的度值,這兩者都代表紅色。 在 CDrawingManager::HLStoRGB_ONE 方法中, H 是圓形的百分比。 例如,使用 HLStoRGB_ONE 時,H 的值為 0.25 相當於 90 的值。 HLStoRGB_TWO

CDrawingManager::HSVtoRGB

將色彩從 HSV 表示轉換成 RGB 標記法。

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

參數

H
[in]介於 0 到 360 之間的數位,表示色彩的色調。

S
[in]介於 0 到 1 之間的數位,表示色彩的飽和度。

V
[in]介於 0 到 1 之間的數位,表示色彩的值。

傳回值

提供的 HSV 色彩 RGB 標記法。

備註

色彩可以表示為 HSV(色調、飽和度和值)、HSL(色調、飽和度和亮度),或 RGB(紅色、綠色和藍色)。 如需不同色彩標記法的詳細資訊,請參閱 Color

CDrawingManager::HuetoRGB

將色調值轉換為紅色、綠色或藍色元件。

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

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

參數

m1
[in]請參閱。

m2
[in]請參閱。

小時
[in]請參閱。

rm1
[in]請參閱。

rm2
[in]請參閱。

Rh
[in]請參閱。

傳回值

所提供色調的個別紅色、綠色或藍色元件。

備註

此方法是協助程式方法, CDrawingManager 類別會用來計算 HSV 或 HSL 標記法中色彩的個別紅色、綠色和藍色元件。 這個方法不是設計成由程式設計人員直接呼叫。 輸入參數是相依于轉換演算法的值。

若要將 HSV 或 HSL 色彩轉換成 RGB 標記法,請呼叫下列其中一種方法:

CDrawingManager::MirrorRect

翻轉矩形區域。

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

參數

矩形
[in]要翻轉的區域周框。

bHorz
[in]布林參數,指出矩形會水準或垂直翻轉。

備註

這個方法可以翻轉 類別所 CDrawingManager 擁有之裝置內容的任何區域。 如果 bHorz 設定為 TRUE,這個方法會水準翻轉區域。 否則,它會垂直翻轉區域。

CDrawingManager::P ixelAlpha

計算半透明圖元的最終色彩。

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);

參數

srcPixel
[in]圖元的初始色彩。

百分比
[in]介於 0 到 100 之間的數位,表示透明度的百分比。 值為 100 表示初始色彩完全透明。

percentR
[in]介於 0 到 100 之間的數位,表示紅色元件的透明度百分比。

percentG
[in]介於 0 到 100 之間的數位,代表綠色元件的透明度百分比。

percentB
[in]介於 0 到 100 之間的數位,表示藍色元件的透明度百分比。

dstPixel
[in]圖元的基底色彩。

傳回值

半透明圖元的最終色彩。

備註

這是著色半透明點陣圖的協助程式類別,並非設計為直接由程式設計人員呼叫。

當您使用具有 dstPixel 的方法版本時,最終色彩是 dstPixel srcPixel 的組合 srcPixel 色彩是 dstPixel 基底色彩的部分透明色彩

CDrawingManager::P repareShadowMask

建立可用來做為陰影的點陣圖。

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

參數

nDepth
[in]陰影的寬度和高度。

clrBase
[in]陰影的色彩。

iMinBrightness
[in]陰影的最小亮度。

iMaxBrightness
[in]陰影的最大亮度。

傳回值

如果這個方法成功,則為所建立點陣圖的控制碼;否則為 Null。

備註

如果 nDepth 設定為 0,這個方法會結束並傳回 Null。 如果 nDepth 小於 3,陰影的寬度和高度會設定為 3 圖元。

CDrawingManager::RGBtoHSL

將色彩從紅色、綠色和藍色 (RGB) 表示轉換為色調、飽和度和光度 (HSL) 標記法。

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

參數

Rgb
[in]RGB 值中的色彩。

H
[out]方法儲存色彩色調之雙精度浮點的指標。

S
[out]方法儲存色彩飽和度之雙精度浮點的指標。

L
[out]雙精度浮點的指標,方法會儲存色彩的光線。

備註

色彩可以表示為 HSV(色調、飽和度和值)、HSL(色調、飽和度和亮度),或 RGB(紅色、綠色和藍色)。 如需不同色彩標記法的詳細資訊,請參閱 Color

H 的傳回值 會以介於 0 到 1 之間的分數表示,其中 0 和 1 都代表紅色。 S L 的傳回值為 介於 0 到 1 之間的數位。

CDrawingManager::RGBtoHSV

將色彩從 RGB 表示轉換為 HSV 標記法。

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

參數

Rgb
[in]要以 RGB 標記法轉換的色彩。

H
[out]雙精度浮點的指標,這個方法會儲存色彩產生的色調。

S
[out]這個方法會儲存色彩之結果飽和度的雙精度浮點數。

V
[out]這個方法會儲存色彩結果值的雙精度浮點數。

備註

色彩可以表示為 HSV(色調、飽和度和值)、HSL(色調、飽和度和亮度),或 RGB(紅色、綠色和藍色)。 如需不同色彩標記法的詳細資訊,請參閱 Color

H 傳回的值 是介於 0 到 360 之間的數位,其中 0 和 360 都表示紅色。 S V 傳回值是介於 0 到 1 之間的數位。

CDrawingManager::SetAlphaPixel

將點陣圖中的透明圖元著色。

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

參數

pBits
[in]點陣圖位值的指標。

矩形
[in]應用程式中的矩形區域。 繪圖管理員在下方和右側繪製陰影。

x
[in]要色彩之圖元的水準座標。

y
[in]要色彩之圖元的垂直座標。

百分比
[in]透明度的百分比。

iShadowSize
[in]陰影的寬度和高度。

clrBase
[in]陰影的色彩。

bIsRight
[in]布林值參數,指出要色彩的圖元。 如需詳細資訊,請參閱<備註>一節。

備註

此方法是 CDrawingManager::D rawShadow 方法所使用的 協助程式方法。 如果您想要繪製陰影,建議您改為呼叫 CDrawingManager::DrawShadow

如果 bIsRight 設定為 TRUE,則從矩形 右邊緣測量 x 圖元到色彩的 圖元。 如果是 FALSE,則從矩形 左邊緣測量 圖元到色彩的 圖元。

CDrawingManager::SetPixel

將點陣圖中的單一圖元變更為指定的色彩。

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

參數

pBits
[in]點陣圖位值的指標。

殘雪
[in]點陣圖的總寬度。

cy
[in]點陣圖的總高度。

x
[in]要變更之點陣圖中圖元的 X 座標。

y
[in]要變更之點陣圖中圖元的 Y 座標。

color
[in]所提供座標所識別圖元的新色彩。

CDrawingManager::SmartMixColors

根據加權比例結合兩種色彩。

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

參數

color1
[in]要混合的第一個色彩。

color2
[in]要混合的第二個色彩。

dblLumRatio
[in]新色彩亮度的比例。 SmartMixColors 在判斷最終色彩之前,將混合色彩的亮度乘以這個比例。

k1
[in]第一個色彩的加權比例。

k2
[in]第二個色彩的加權比例。

傳回值

代表所提供色彩加權混合的色彩。

備註

如果 k1 k2 小於零,這個方法就會失敗併發生錯誤。 如果這兩個參數都設定為 0,方法會傳 RGB(0, 0, 0) 回 。

加權比率的計算公式如下:(color1 * k1 + color2 * k2)/(k1 + k2)。 判斷加權比例之後,方法會計算混合色彩的亮度。 然後,它會乘以 dblLumRatio 的亮度。 如果值大於 1.0,方法會將混合色彩的亮度設定為新的值。 否則,亮度會設定為 1.0。

CDrawingManager::D rawRotated

將指定矩形內的來源 DC 內容旋轉 90 度。

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

參數

rectDest
目的地矩形。

dcSrc
來源裝置內容。

bClockWise
TRUE 表示旋轉 +90 度;FALSE 表示旋轉 -90 度。

備註

另請參閱

階層架構圖表
類別