CDrawingManager クラス
CDrawingManager
クラスは、複雑な描画アルゴリズムを実装します。
構文
class CDrawingManager : public CObject
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CDrawingManager::CDrawingManager | CDrawingManager オブジェクトを構築します。 |
CDrawingManager::~CDrawingManager |
デストラクターです。 |
パブリック メソッド
名前 | 説明 |
---|---|
CDrawingManager::CreateBitmap_32 | アプリケーションが直接書き込むことができる 32 ビットデバイス非依存ビットマップ (DIB) を作成します。 |
CDrawingManager::D rawAlpha | ピクセルが透明または半透明のビットマップを表示します。 |
CDrawingManager::D rawRotated | 指定した四角形内のソース DC コンテンツを +/- 90 度回転します。 |
CDrawingManager::D rawEllipse | 指定された塗りつぶしと罫線の色で楕円を描画します。 |
CDrawingManager::D rawGradientRing | リングを描画し、色のグラデーションで塗りつぶします。 |
CDrawingManager::D rawLine,CDrawingManager::D rawLineA | 線を描画します。 |
CDrawingManager::D rawRect | 指定された塗りつぶしと罫線の色を使用して四角形を描画します。 |
CDrawingManager::D rawShadow | 四角形領域の影を描画します。 |
CDrawingManager::Fill4ColorsGradient | 四角形の領域に 2 つの色のグラデーションを塗りつぶします。 |
CDrawingManager::FillGradient | 指定した色グラデーションで四角形領域を塗りつぶします。 |
CDrawingManager::FillGradient2 | 指定した色グラデーションで四角形領域を塗りつぶします。 グラデーションの色の変更の方向も指定します。 |
CDrawingManager::GrayRect | 指定した灰色で四角形を塗りつぶします。 |
CDrawingManager::HighlightRect | 四角形の領域を強調表示します。 |
CDrawingManager::HLStoRGB_ONE | 色を HLS 表現から RGB 表現に変換します。 |
CDrawingManager::HLStoRGB_TWO | 色を HLS 表現から RGB 表現に変換します。 |
CDrawingManager::HSVtoRGB | 色を HSV 表現から RGB 表現に変換します。 |
CDrawingManager::HuetoRGB | 色相の値を赤、緑、または青のコンポーネントに変換するヘルパー メソッド。 |
CDrawingManager::MirrorRect | 四角形の領域を反転します。 |
CDrawingManager::P ixelAlpha | 半透明ピクセルの最終的な色を決定するヘルパー メソッド。 |
CDrawingManager::P repareShadowMask | 影として使用できるビットマップを作成します。 |
CDrawingManager::RGBtoHSL | 色を RGB リプレゼンテーションから HSL リプレゼンテーションに変換します。 |
CDrawingManager::RGBtoHSV | 色を RGB 表現から HSV 表現に変換します。 |
CDrawingManager::SetAlphaPixel | ビットマップ内の部分的に透明なピクセルを色付けするヘルパー メソッド。 |
CDrawingManager::SetPixel | ビットマップ内の 1 つのピクセルを指定した色に変更するヘルパー メソッド。 |
CDrawingManager::SmartMixColors | 重み付け比率に基づいて 2 つの色を結合します。 |
解説
CDrawingManager
クラスには、影、色のグラデーション、および強調表示された四角形を描画するための関数が用意されています。 アルファ ブレンドも実行します。 このクラスを使用して、アプリケーションの UI を直接変更できます。
継承階層
CObject
CDrawingManager
要件
Header: 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
[入力] ドッキング先の四角形。
pSrcDC
[in]ソースのデバイス コンテキストへのポインター。
rectSrc
[in]ソースの四角形。
解説
このメソッドは、2 つのビットマップに対してアルファ ブレンドを実行します。 アルファ ブレンドの詳細については、Windows SDK の「 AlphaBlend 」を参照してください。
CDrawingManager::D rawEllipse
指定された塗りつぶしと罫線の色で楕円を描画します。
void DrawEllipse(
const CRect& rect,
COLORREF clrFill,
COLORREF clrLine);
パラメーター
rect
[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);
パラメーター
rect
[in]グラデーション リングの境界を指定する CRect パラメーター。
colorStart
[in]グラデーションの最初の色。
colorFinish
[in]グラデーションの最後の色。
colorBorder
[in]罫線の色。
nAngle
[in]最初のグラデーション描画角度を指定するパラメーター。 この値は 0 から 360 の間である必要があります。
nWidth
[in]リングの境界線の幅。
clrFace
[in]リングの内部の色。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
rect によって定義される四角形は、幅が 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);
パラメーター
rect
[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);
パラメーター
rect
[in]アプリケーション内の四角形の領域。 描画マネージャーは、この領域の下に影を描画します。
nDepth
[in]影の幅と高さ。
iMinBrightness
[in]影の最小明るさ。
iMaxBrightness
[in]影の最大輝度。
pBmpSaveBottom
[in]影の下部の画像を含むビットマップへのポインター。
pBmpSaveRight
[in]四角形の右側に描画される影の画像を含むビットマップへのポインター。
clrBase
[in]影の色。
bRightShadow
[in]影の描画方法を示すブール値パラメーター。 bRightShadow がTRUE
されている場合は、四角形の右側に影を描画DrawShadow
。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
パラメーター pBmpSaveBottom と pBmpSaveRight を使用して、下と右の影に 2 つの有効なビットマップを指定できます。 これらの CBitmap オブジェクトに GDI オブジェクトがアタッチされている場合、 DrawShadow
はそれらのビットマップをシャドウとして使用します。 CBitmap
パラメーターに GDI オブジェクトがアタッチされていない場合、DrawShadow
はシャドウを描画し、ビットマップをパラメーターにアタッチします。 DrawShadow
の今後の呼び出しでは、描画プロセスを高速化するためにこれらのビットマップを提供できます。 CBitmap
クラスと GDI オブジェクトの詳細については、「Graphic オブジェクトを参照してください。
これらのパラメーターのいずれかが NULL
されている場合、 DrawShadow
は自動的に影を描画します。
bRightShadow を FALSE に設定すると、影は四角形領域の下と左に描画されます。
例
次の例では、CDrawingManager
クラスの DrawShadow
メソッドを使用する方法を示します。 このコード スニペットは、 Prop Sheet Demo サンプルの一部です。
// CDC* pDC
// CRect rectHeader
CDrawingManager dm(*pDC);
// Draw a shadow for a rectangular area.
// second parameter is the depth of the shadow
dm.DrawShadow(rectHeader, 2);
CDrawingManager::Fill4ColorsGradient
四角形の領域に 2 つの色のグラデーションを塗りつぶします。
void Fill4ColorsGradient(
CRect rect,
COLORREF colorStart1,
COLORREF colorFinish1,
COLORREF colorStart2,
COLORREF colorFinish2,
BOOL bHorz = TRUE,
int nPercentage = 50);
パラメーター
rect
[in]塗りつぶす四角形。
colorStart1
[in]最初の色のグラデーションの初期色。
colorFinish1
[in]最初の色グラデーションの最終的な色。
colorStart2
[in]2 番目の色グラデーションの初期色。
colorFinish2
[in]2 番目の色グラデーションの最終的な色。
bHorz
[in]水平グラデーションと垂直グラデーションのどちらを色付け Fill4ColorsGradient
するかを示すブール型パラメーターです。 TRUE は水平グラデーションを示します。
nPercentage
[in]0 から 100 の整数。 この値は、最初の色のグラデーションで塗りつぶす四角形の割合を示します。
解説
四角形に 2 つの色のグラデーションが塗りつぶされると、 Horzの値に応じて、互いの上または隣り合わせて配置されます。 各色グラデーションは、メソッド CDrawingManager::FillGradient を使用して個別に計算されます。
このメソッドは、 nPercentage が 0 未満または 100 を超える場合にアサーション エラーを生成します。
CDrawingManager::FillGradient
指定した色グラデーションで四角形領域を塗りつぶします。
void FillGradient(
CRect rect,
COLORREF colorStart,
COLORREF colorFinish,
BOOL bHorz = TRUE,
int nStartFlatPercentage = 0,
int nEndFlatPercentage = 0);
パラメーター
rect
[in]塗りつぶす四角形の領域。
colorStart
[in]グラデーションの最初の色。
colorFinish
[in]グラデーションの最終的な色。
bHorz
[in]水平方向または垂直方向のグラデーション FillGradient
描画するかどうかを指定するブール型パラメーター。
nStartFlatPercentage
[in]グラデーションを開始する前に FillGradient
が colorStart で塗りつぶす四角形の割合。
nEndFlatPercentage
[in]グラデーションが終了した後にcolorFinishで塗りつぶFillGradient
四角形の割合。
例
次の例では、CDrawingManager
クラスの FillGradient
メソッドを使用する方法を示します。 このコード スニペットは、 MS Office 2007 Demo サンプルの一部です。
// 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);
パラメーター
rect
[in]塗りつぶす四角形の領域。
colorStart
[in]グラデーションの最初の色。
colorFinish
[in]グラデーションの最後の色。
nAngle
[in]0 ~ 360 の整数。 このパラメーターは、色グラデーションの方向を指定します。
解説
nAngleを使用して、色のグラデーションの方向を指定します。 色グラデーションの方向を指定する場合は、色グラデーションの開始位置も指定します。 nAngle の値 0 は、グラデーションが四角形の上部から開始されることを示します。 nAngleが大きくなると、グラデーションの開始位置は角度に基づいて反時計回りに移動します。
例
次の例では、CDrawingManager
クラスの FillGradient2
メソッドを使用する方法を示します。 このコード スニペットは、 New コントロールのサンプルの一部です。
// 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);
パラメーター
rect
[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);
パラメーター
rect
[in]強調表示する四角形の領域。
nPercentage
[in]強調表示の透明度を示す割合。
clrTransparent
[in]透明な色。
nTolerance
[in]色の許容範囲を示す 0 ~ 255 の整数。
clrBlend
[in]ブレンドの基本色。
戻り値
メソッドが成功した場合は TRUE。それ以外の場合は FALSE。
解説
nPercentage が 0 ~ 99 の場合、HighlightRect
はアルファ ブレンド アルゴリズムを使用します。 アルファ ブレンドの詳細については、「 アルファ ブレンドの線と塗りつぶしを参照してください。 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 は、 HLStoRGB_TWO
の値 90 に相当します。
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 は、 HLStoRGB_TWO
の値 90 に相当します。
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);
パラメーター
rect
[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]メソッドが色の色相を格納する double へのポインター。
S
[out]メソッドが色の彩度を格納する double へのポインター。
L
[out]メソッドが色の明るさを格納する double へのポインター。
解説
色は、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]このメソッドが色の結果の色合いを格納する double へのポインター。
S
[out]このメソッドが色の結果の彩度を格納する double へのポインター。
V
[out]このメソッドが色の結果の値を格納する double へのポインター。
解説
色は、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]ビットマップのビット値へのポインター。
rect
[in]アプリケーション内の四角形の領域。 描画マネージャーは、この領域の下と右側に影を描画します。
x
[in]色付けするピクセルの水平方向の座標。
y
[in]色付けするピクセルの垂直方向の座標。
パーセント
[in]透明度の割合。
iShadowSize
[in]影の幅と高さ。
clrBase
[in]影の色。
bIsRight
[in]色付けするピクセルを示すブール値パラメーター。 詳細については、次の「解説」を参照してください。
解説
このメソッドは、 CDrawingManager::D rawShadow メソッドによって使用されるヘルパー メソッドです。 影を描画する場合は、代わりに CDrawingManager::DrawShadow
呼び出することをお勧めします。
bIsRight が TRUE に設定されている場合、色のピクセルはrectの右端からxピクセルで測定されます。 FALSE の場合、色付けするピクセルは x ピクセル rectの左端から測定されます。
CDrawingManager::SetPixel
ビットマップ内の 1 つのピクセルを指定した色に変更します。
static void __stdcall SetPixel(
COLORREF* pBits,
int cx,
int cy,
int x,
int y,
COLORREF color);
パラメーター
pBits
[in]ビットマップのビット値へのポインター。
cx
[in]ビットマップの合計幅。
cy
[in]ビットマップの高さの合計。
x
[in]変更するビットマップ内のピクセルの x 座標。
y
[in]変更するビットマップ内のピクセルの y 座標。
color
[in]指定された座標によって識別されるピクセルの新しい色。
CDrawingManager::SmartMixColors
重み付け比率に基づいて 2 つの色を結合します。
static COLORREF __stdcall SmartMixColors(
COLORREF color1,
COLORREF color2,
double dblLumRatio = 1.,
int k1 = 1,
int k2 = 1);
パラメーター
color1
[in]ミックスする最初の色。
color2
[in]ミックスする 2 番目の色。
dblLumRatio
[in]新しい色の明度の比率。 SmartMixColors
は、最終的な色を決定する前に、混合色の明度をこの比率で乗算します。
k1
[in]最初の色の加重比率。
k2
[in]2 番目の色の加重比率。
戻り値
指定された色の重み付けされた混合物を表す色。
解説
k1 または k2 が 0 未満の場合、このメソッドはエラーで失敗します。 これらのパラメーターの両方が 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 度回転を示します。