PathGradientBrush::GetInterpolationColorCount 方法 (gdipluspath.h)
PathGradientBrush::GetInterpolationColorCount 方法會取得目前為此路徑漸層筆刷指定的預設色彩數目。
Syntax
INT GetInterpolationColorCount();
傳回值
類型: INT
這個方法會傳回目前為此路徑漸層筆刷指定的預設色彩數目。
備註
簡單的路徑漸層筆刷有兩種色彩:界限色彩和中央色彩。 當您使用這類筆刷繪製時,當從界限路徑移至中心點時,色彩會逐漸從界限色彩變更為中心色彩。 您可以藉由指定預設色彩陣列和混合位置的陣列,來建立更複雜的漸層。
您可以呼叫 PathGradientBrush 物件的 PathGradientBrush::GetInterpolationColors 方法來取得 PathGradientBrush 物件目前設定的插補色彩和插補位置。 呼叫 PathGradientBrush::GetInterpolationColors 方法之前,您必須配置兩個緩衝區:一個用來保存插補色彩的陣列,另一個用來保存插補位置陣列。 您可以呼叫 PathGradientBrush::GetInterpolationColorCount物件的 PathGradientBrush 方法,以判斷這些緩衝區的必要大小。 色彩緩衝區的大小是 GetInterpolationColorCount 的傳回值乘以 sizeof (Color) 。 位置緩衝區的大小是 PathGradientBrush::GetInterpolationColorCount 的值乘以 sizeof ( REAL) 。
範例
下列範例會從三角形路徑建立 PathGradientBrush 物件。 程序代碼會將預設色彩設定為紅色、藍色和青色,並將混合位置設定為 0、0.6 和 1。 程序代碼會呼叫 PathGradientBrush::GetInterpolationColorCount 物件的 PathGradientBrush 方法,以取得筆刷目前設定的預設色彩數目。 接下來,程式代碼會配置兩個緩衝區:一個用來保存預設色彩的陣列,另一個用來保存混合位置的陣列。 PathGradientBrush::GetInterpolationColors 方法的 PathGradientBrush 物件呼叫會以預設色彩和混合位置填滿緩衝區。 最後,程式代碼會以每個預設色彩填滿小方塊。
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 |