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 | 사각형 영역을 두 가지 색 그라데이션으로 채웁니다. |
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 | 비트맵의 단일 픽셀을 지정된 색으로 변경하는 도우미 메서드입니다. |
CDrawingManager::SmartMixColors | 가중 비율에 따라 두 색을 결합합니다. |
설명
이 클래스는 CDrawingManager
그림자, 색 그라데이션 및 강조 표시된 사각형을 그리기 위한 함수를 제공합니다. 또한 알파 혼합을 수행합니다. 이 클래스를 사용하여 애플리케이션의 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 값입니다.
Return Value
이 메서드가 성공하면 새로 만든 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] 원본 사각형입니다.
설명
이 메서드는 두 비트맵에 대해 알파 혼합을 수행합니다. 알파 혼합에 대한 자세한 내용은 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] 링의 내부 색입니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 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);
매개 변수
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
면 사각형의 오른쪽에 그림자를 그립니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
pBmpSaveBottom 및 pBmpSaveRight 매개 변수를 사용하여 아래쪽 및 오른쪽 그림자에 대해 두 개의 유효한 비트맵을 제공할 수 있습니다. 이러한 CBitmap 개체에 GDI 개체 DrawShadow
가 연결된 경우 해당 비트맵을 그림자로 사용합니다. 매개 변수에 CBitmap
연결된 GDI 개체 DrawShadow
가 없는 경우 그림자를 그리고 비트맵을 매개 변수에 연결합니다. 향후 호출 DrawShadow
에서 이러한 비트맵을 제공하여 그리기 프로세스를 가속화할 수 있습니다. 클래스 및 GDI 개체에 CBitmap
대한 자세한 내용은 그래픽 개체를 참조 하세요.
이러한 매개 변수 NULL
DrawShadow
중 하나가 있으면 자동으로 그림자를 그립니다.
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);
매개 변수
rect
[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);
매개 변수
rect
[in] 채울 사각형 영역입니다.
colorStart
[in] 그라데이션의 첫 번째 색입니다.
colorFinish
[in] 그라데이션의 마지막 색입니다.
bHorz
[in] 가로 또는 세로 그라데이션을 그릴지 여부를 FillGradient
지정하는 부울 매개 변수입니다.
nStartFlatPercentage
[in] 그라데이션을 시작하기 전에 colorStart로 채워진 사각형 FillGradient
의 백분율입니다.
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);
매개 변수
rect
[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);
매개 변수
rect
[in] 채울 사각형 영역입니다.
nPercentage
[in] 사각형에서 원하는 회색의 백분율입니다.
clrTransparent
[in] 투명한 색입니다.
clrDisabled
[in] nPercentage가 -1로 설정된 경우 이 메서드가 채도를 해제하는 데 사용하는 색입니다.
Return Value
메서드가 성공하면 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] 혼합을 위한 기본 색입니다.
Return Value
메서드가 성공하면 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 사이의 숫자입니다.
Return Value
제공된 HLS 색의 RGB 표현입니다.
설명
색은 HSV(색조, 채도 및 값), HSL(색조, 채도 및 광도) 또는 RGB(빨강, 녹색 및 파랑)로 나타낼 수 있습니다. 색의 다양한 표현에 대한 자세한 내용은 색을 참조 하세요.
이 메서드와 메서드는 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 사이의 숫자입니다.
Return Value
제공된 HLS 색의 RGB 표현입니다.
설명
색은 HSV(색조, 채도 및 값), HSL(색조, 채도 및 광도) 또는 RGB(빨강, 녹색 및 파랑)로 나타낼 수 있습니다. 색의 다양한 표현에 대한 자세한 내용은 색을 참조 하세요.
이 메서드와 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 사이의 숫자입니다.
Return Value
제공된 HSV 색의 RGB 표현입니다.
설명
색은 HSV(색조, 채도 및 값), HSL(색조, 채도 및 광도) 또는 RGB(빨강, 녹색 및 파랑)로 나타낼 수 있습니다. 색의 다양한 표현에 대한 자세한 내용은 색을 참조 하세요.
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] 비고를 참조하세요.
Return Value
제공된 색조에 대한 개별 빨강, 녹색 또는 파란색 구성 요소입니다.
설명
이 메서드는 클래스가 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] 픽셀의 기본 색입니다.
Return Value
반투명 픽셀의 최종 색입니다.
설명
반투명 비트맵을 색칠하기 위한 도우미 클래스이며 프로그래머가 직접 호출하도록 설계되지 않았습니다.
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] 그림자의 최대 밝기입니다.
Return Value
이 메서드가 성공하면 만든 비트맵에 대한 핸들입니다. 그렇지 않으면 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(빨강, 녹색 및 파랑)로 나타낼 수 있습니다. 색의 다양한 표현에 대한 자세한 내용은 색을 참조 하세요.
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(빨강, 녹색 및 파랑)로 나타낼 수 있습니다. 색의 다양한 표현에 대한 자세한 내용은 색을 참조 하세요.
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로 설정되면 픽셀에서 색으로는 사각형의 오른쪽 가장자리에서 x 픽셀로 측정됩니다. FALSE이면 색에 대한 픽셀은 사각형의 왼쪽 가장자리에서 x픽셀로 측정됩니다.
CDrawingManager::SetPixel
비트맵의 단일 픽셀을 지정된 색으로 변경합니다.
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
가중 비율에 따라 두 색을 결합합니다.
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] 두 번째 색의 가중치 비율입니다.
Return Value
제공된 색의 가중치 혼합을 나타내는 색입니다.
설명
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도 회전을 나타냅니다.