다음을 통해 공유


PathGradientBrush::GetInterpolationColorCount 메서드(gdipluspath.h)

PathGradientBrush::GetInterpolationColorCount 메서드는 이 경로 그라데이션 브러시에 대해 현재 지정된 미리 설정된 색 수를 가져옵니다.

구문

INT GetInterpolationColorCount();

반환 값

형식: INT

이 메서드는 이 경로 그라데이션 브러시에 대해 현재 지정된 미리 설정된 색 수를 반환합니다.

설명

단순 경로 그라데이션 브러시에는 경계 색과 가운데 색의 두 가지 색이 있습니다. 이러한 브러시로 칠하면 경계 경로에서 가운데 지점으로 이동할 때 색이 경계 색에서 가운데 색으로 점진적으로 변경됩니다. 미리 설정된 색 배열과 혼합 위치 배열을 지정하여 보다 복잡한 그라데이션을 만들 수 있습니다.

PathGradientBrush 개체의 PathGradientBrush::GetInterpolationColors 메서드를 호출하여 현재 PathGradientBrush 개체에 대해 설정된 보간 색 및 보간 위치를 가져올 수 있습니다. PathGradientBrush::GetInterpolationColors 메서드를 호출하기 전에 두 개의 버퍼를 할당해야 합니다. 하나는 보간 색 배열을 보유하는 버퍼이고 다른 하나는 보간 위치 배열을 보유해야 합니다. PathGradientBrush 개체의 PathGradientBrush::GetInterpolationColorCount 메서드를 호출하여 해당 버퍼의 필요한 크기를 확인할 수 있습니다. 색 버퍼의 크기는 GetInterpolationColorCount 의 반환 값에 sizeof(Color)를 곱한 값입니다. 위치 버퍼의 크기는 PathGradientBrush::GetInterpolationColorCountsizeof( 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

추가 정보

브러시 및 채워진 도형

색상

경로 그라데이션 만들기

도형에 색 그라데이션 채우기

PathGradientBrush

PathGradientBrush::GetInterpolationColors

PathGradientBrush::SetInterpolationColors