GradientFill 함수(wingdi.h)

GradientFill 함수는 사각형 및 삼각형 구조를 채웁니다.

구문

BOOL GradientFill(
  [in] HDC        hdc,
  [in] PTRIVERTEX pVertex,
  [in] ULONG      nVertex,
  [in] PVOID      pMesh,
  [in] ULONG      nMesh,
  [in] ULONG      ulMode
);

매개 변수

[in] hdc

대상 디바이스 컨텍스트에 대한 핸들입니다.

[in] pVertex

각각 꼭짓점을 정의하는 TRIVERTEX 구조체 배열에 대한 포인터입니다.

[in] nVertex

pVertex의 꼭짓점 수입니다.

[in] pMesh

삼각형 모드의 GRADIENT_TRIANGLE 구조체 배열 또는 사각형 모드의 GRADIENT_RECT 구조체 배열입니다.

[in] nMesh

pMesh의 요소(삼각형 또는 사각형)의 수입니다.

[in] ulMode

그라데이션 채우기 모드입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
GRADIENT_FILL_RECT_H
이 모드에서는 두 개의 엔드포인트가 사각형을 설명합니다. 사각형은 왼쪽 및 오른쪽 가장자리에 대한 상수 색( TRIVERTEX 구조체로 지정됨)을 갖도록 정의됩니다. GDI는 왼쪽에서 오른쪽 가장자리의 색을 보간하고 내부를 채웁니다.
GRADIENT_FILL_RECT_V
이 모드에서는 두 개의 엔드포인트가 사각형을 설명합니다. 사각형은 위쪽 및 아래쪽 가장자리의 상수 색( TRIVERTEX 구조로 지정됨)을 포함하도록 정의됩니다. GDI는 위쪽에서 아래쪽 가장자리로 색을 보간하고 내부를 채웁니다.
GRADIENT_FILL_TRIANGLE
이 모드에서는 TRIVERTEX 구조체의 배열이 별도의 삼각형을 설명하는 배열 인덱스 목록과 함께 GDI에 전달됩니다. GDI는 삼각형 꼭짓점 간에 선형 보간을 수행하고 내부를 채웁니다. 그리기는 24 및 32-bpp 모드에서 직접 수행됩니다. 디더링이 16-, 8, 4 및 1-bpp 모드로 수행됩니다.

반환 값

함수가 성공하면 반환 값은 TRUE입니다.

함수가 실패하면 반환 값은 FALSE입니다.

설명

삼각형에 부드러운 음영을 추가하려면 세 개의 삼각형 엔드포인트를 사용하여 GradientFill 함수를 호출합니다. GDI는 삼각형을 선형으로 보간하고 채웁니다. 다음은 음영 처리된 삼각형의 그리기 출력입니다.

위쪽 점의 주황색에서 아래쪽의 마젠타로 채우는 삼각형 그림 사각형에 부드러운 음영을 추가하려면 사각형의 왼쪽 위와 오른쪽 아래 좌표를 사용하여 GradientFill 을 호출합니다. 사각형을 그릴 때 사용되는 두 가지 음영 모드가 있습니다. 가로 모드에서 사각형은 왼쪽에서 오른쪽으로 음영 처리됩니다. 세로 모드에서 사각형은 위에서 아래로 음영 처리됩니다. 다음은 음영 처리된 두 사각형의 그리기 출력입니다. 하나는 가로 모드이고 다른 하나는 세로 모드입니다.왼쪽의 어둡게에서 오른쪽 조명으로 음영을 지정하는 사각형의 그림위쪽의 어둡게에서 아래쪽의 밝게으로 음영을 지정하는 사각형의 일러스트레이션GradientFill 함수는 메시 메서드를 사용하여 그릴 개체의 엔드포인트를 지정합니다. 모든 꼭짓점은 pVertex 배열의 GradientFill에 전달됩니다. pMesh 매개 변수는 이러한 꼭짓점이 개체를 형성하기 위해 연결되는 방법을 지정합니다. 사각형을 채울 때 pMeshGRADIENT_RECT 구조체의 배열을 가리킵니다. 각 GRADIENT_RECT 구조체는 pVertex 배열에 있는 두 꼭짓점의 인덱스를 지정합니다. 이러한 두 꼭짓점은 한 사각형의 왼쪽 위와 오른쪽 아래 경계를 형성합니다.

삼각형을 채우는 경우 pMeshGRADIENT_TRIANGLE 구조체의 배열을 가리킵니다. 각 GRADIENT_TRIANGLE 구조체는 pVertex 배열에 있는 세 꼭짓점의 인덱스를 지정합니다. 이 세 꼭짓점은 하나의 삼각형을 형성합니다.

하드웨어 가속을 간소화하기 위해 이 루틴은 삼각형 내부에서 픽셀에 완벽할 필요는 없습니다.

GradientFill은 TRIVERTEX 구조체의 알파 멤버를 사용하지 않습니다. 투명도로 GradientFill을 사용하려면 GradientFill을 호출한 다음 각 꼭짓점의 알파 채널에 대해 원하는 값으로 AlphaBlend 를 호출합니다.

자세한 내용은 부드러운 음영, 음영된 삼각형 그리기음영 사각형 그리기를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 wingdi.h(Windows.h 포함)
라이브러리 Msimg32.lib
DLL Msimg32.dll

추가 정보

비트맵 함수

비트맵 개요

EMRGRADIENTFILL

GRADIENT_RECT

GRADIENT_TRIANGLE

TRIVERTEX