다음을 통해 공유


LinearGradientBrush::GetInterpolationColorCount 메서드(gdiplusbrush.h)

LinearGradientBrush::GetInterpolationColorCount 메서드는 현재 이 선형 그라데이션 브러시에 대해 보간되도록 설정된 색 수를 가져옵니다.

구문

INT GetInterpolationColorCount();

반환 값

형식: INT

이 메서드는 이 선형 그라데이션 브러시에 대해 보간할 색 수를 반환합니다. LinearGradientBrush::SetInterpolationColors를 사용하여 색을 설정하지 않은 경우 또는 잘못된 위치가 LinearGradientBrush::SetInterpolationColors에 전달된 경우 LinearGradientBrush::GetInterpolationColorCount는 0을 반환합니다.

설명

간단한 선형 그라데이션 브러시에는 시작 경계의 색과 끝 경계의 색이라는 두 가지 색이 있습니다. 이러한 브러시로 칠할 때 시작 경계에서 끝 경계로 이동할 때 색이 시작 색에서 끝 색으로 점차 변경됩니다. LinearGradientBrush::SetInterpolationColors 메서드를 사용하여 이 선형 그라데이션 브러시에 대해 보간할 색 배열과 해당 혼합 위치를 지정하여 보다 복잡한 그라데이션을 만들 수 있습니다.

LinearGradientBrush::GetInterpolationColors 메서드를 호출하여 선형 그라데이션 브러시에 대해 현재 설정된 색 및 혼합 위치를 가져올 수 있습니다. LinearGradientBrush::GetInterpolationColors 메서드를 호출하기 전에 두 개의 버퍼를 할당해야 합니다. 하나는 색 배열을 보관하고 다른 하나는 혼합 위치 배열을 보유합니다. LinearGradientBrush::GetInterpolationColorCount 메서드를 호출하여 해당 버퍼의 필요한 크기를 확인할 수 있습니다. 색 버퍼의 크기는 LinearGradientBrush::GetInterpolationColorCount 의 반환 값에 sizeof(Color)를 곱한 값입니다. 혼합 위치 버퍼의 크기는 LinearGradientBrush::GetInterpolationColorCount 의 값에 sizeof( REAL)를 곱한 값입니다.

예제

다음 예제에서는 이 선형 그라데이션 브러시에 대해 보간할 색을 빨간색, 파란색 및 녹색으로 설정하고 혼합 위치를 0, 0.3 및 1로 설정합니다. 이 코드는 LinearGradientBrush 개체의 LinearGradientBrush::GetInterpolationColorCount 메서드를 호출하여 현재 브러시에 대해 보간되도록 설정된 색 수를 가져옵니다. 다음으로 코드는 색과 해당 위치를 가져옵니다. 그런 다음 코드는 각 색으로 작은 사각형을 채웁니다.

VOID Example_GetInterpColors(HDC hdc)
{
   Graphics myGraphics(hdc);

   // Create a linear gradient brush, and set the colors to be interpolated.
   Color col[] = {
      Color(255, 255, 0, 0),   // red
      Color(255, 0, 0, 255),   // blue
      Color(255, 0, 255, 0)};  // green

   REAL pos[] = {
      0.0f,   // red at the left edge
      0.3f,   // blue at 30 percent of the distance from 
              // left edge to right edge
      1.0f};  // green at the right edge

   LinearGradientBrush linGrBrush(
      Point(0, 0), 
      Point(100, 0),
      Color(255, 0, 0, 0),         // black
      Color(255, 255, 255, 255));  // white

   linGrBrush.SetInterpolationColors(col, pos, 3);

   // Obtain information about the linear gradient brush.
   INT    colorCount = 0;
   Color* colors = NULL;
   REAL*  positions = NULL;

   // How many colors have been specified to be interpolated 
   // for this brush?
   colorCount = linGrBrush.GetInterpolationColorCount();

   // Allocate a buffer large enough to hold the set of colors.
   colors = new Color[colorCount];

   // Allocate a buffer to hold the relative positions of the colors.
   positions = REAL[colorCount];

   // Get the colors and their relative positions.
   linGrBrush.GetInterpolationColors(colors, positions, colorCount);

   // Fill a small rectangle with each of the colors.
   SolidBrush* pSolidBrush;
   for(INT j = 0; j < colorCount; j++)
   {
      pSolidBrush = new SolidBrush(colors[j]);
      myGraphics.FillRectangle(pSolidBrush, 15*j, 0, 10, 10);
      delete(pSolidBrush);
   }
}

요구 사항

   
지원되는 최소 클라이언트 Windows XP, Windows 2000 Professional [데스크톱 앱만 해당]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 gdiplusbrush.h(Gdiplus.h 포함)
라이브러리 Gdiplus.lib
DLL Gdiplus.dll

추가 정보

브러시 및 채워진 도형

색상

선형 그라데이션 만들기

색 그라데이션으로 도형 채우기

LinearGradientBrush

LinearGradientBrush::GetInterpolationColors

LinearGradientBrush::SetInterpolationColors

PathGradientBrush

Rect

SolidBrush