PathGradientBrush::GetInterpolationColorCount 메서드(gdipluspath.h)
PathGradientBrush::GetInterpolationColorCount 메서드는 이 경로 그라데이션 브러시에 대해 현재 지정된 미리 설정된 색 수를 가져옵니다.
구문
INT GetInterpolationColorCount();
반환 값
형식: INT
이 메서드는 이 경로 그라데이션 브러시에 대해 현재 지정된 미리 설정된 색 수를 반환합니다.
설명
단순 경로 그라데이션 브러시에는 경계 색과 가운데 색의 두 가지 색이 있습니다. 이러한 브러시로 칠하면 경계 경로에서 가운데 지점으로 이동할 때 색이 경계 색에서 가운데 색으로 점진적으로 변경됩니다. 미리 설정된 색 배열과 혼합 위치 배열을 지정하여 보다 복잡한 그라데이션을 만들 수 있습니다.
PathGradientBrush 개체의 PathGradientBrush::GetInterpolationColors 메서드를 호출하여 현재 PathGradientBrush 개체에 대해 설정된 보간 색 및 보간 위치를 가져올 수 있습니다. PathGradientBrush::GetInterpolationColors 메서드를 호출하기 전에 두 개의 버퍼를 할당해야 합니다. 하나는 보간 색 배열을 보유하는 버퍼이고 다른 하나는 보간 위치 배열을 보유해야 합니다. PathGradientBrush 개체의 PathGradientBrush::GetInterpolationColorCount 메서드를 호출하여 해당 버퍼의 필요한 크기를 확인할 수 있습니다. 색 버퍼의 크기는 GetInterpolationColorCount 의 반환 값에 sizeof(Color)를 곱한 값입니다. 위치 버퍼의 크기는 PathGradientBrush::GetInterpolationColorCount 에 sizeof( REAL)를 곱한 값입니다.
예제
다음 예제에서는 삼각형 경로에서 PathGradientBrush 개체를 만듭니다. 코드는 미리 설정된 색을 빨강, 파랑 및 아쿠아로 설정하고 혼합 위치를 0, 0.6 및 1로 설정합니다. 이 코드는 PathGradientBrush 개체의 PathGradientBrush::GetInterpolationColorCount 메서드를 호출하여 현재 브러시에 대해 설정된 미리 설정된 색 수를 가져옵니다. 다음으로 코드는 두 개의 버퍼를 할당합니다. 하나는 미리 설정된 색 배열을 보관하고 다른 하나는 혼합 위치 배열을 보유합니다. PathGradientBrush 개체의 PathGradientBrush::GetInterpolationColors 메서드에 대한 호출은 버퍼를 미리 설정된 색과 혼합 위치로 채웁니다. 마지막으로 코드는 미리 설정된 각 색으로 작은 사각형을 채웁니다.
VOID Example_GetInterpColors(HDC hdc)
{
Graphics graphics(hdc);
// Create a path gradient brush from an array of points, and
// set the interpolation colors for that brush.
Point points[] = {Point(100, 0), Point(200, 200), Point(0, 200)};
PathGradientBrush pthGrBrush(points, 3);
Color col[] = {
Color(255, 255, 0, 0), // red
Color(255, 0, 0, 255), // blue
Color(255, 0, 255, 255)}; // aqua
REAL pos[] = {
0.0f, // red at the boundary
0.6f, // blue 60 percent of the way from the boundary to the center
1.0f}; // aqua at the center
pthGrBrush.SetInterpolationColors(col, pos, 3);
// Obtain information about the path gradient brush.
INT colorCount = pthGrBrush.GetInterpolationColorCount();
Color* colors = new Color[colorCount];
REAL* positions = new REAL[colorCount];
pthGrBrush.GetInterpolationColors(colors, positions, colorCount);
// Fill a small square with each of the interpolation colors.
SolidBrush solidBrush(Color(255, 255, 255, 255));
for(INT j = 0; j < colorCount; ++j)
{
solidBrush.SetColor(colors[j]);
graphics.FillRectangle(&solidBrush, 15*j, 0, 10, 10);
}
delete [] colors;
delete [] positions;
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP, Windows 2000 Professional [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | gdipluspath.h(Gdiplus.h 포함) |
라이브러리 | Gdiplus.lib |
DLL | Gdiplus.dll |