使用不透明和半透明筆刷繪製
當您填滿圖形時,必須將 Brush 物件的位址傳遞至 Graphics 類別的其中一個填滿方法。 SolidBrush建構函式的其中一個參數是Color物件。 若要填滿不透明的圖形,請設定色彩的 Alpha 元件為 255。 若要填滿半透明的圖案,請設定 Alpha 元件為從 1 到 254 的任何值。
當您填滿半透明的圖案時,圖案的色彩會與背景的色彩混合。 Alpha 元件會指定圖形和背景色彩的混合方式;接近 0 的 Alpha 值會將更多權數放在背景色彩上,而接近 255 的 Alpha 值則比較重于圖形色彩。
下列範例會繪製影像,然後填滿三個重迭影像的省略號。 第一個橢圓形使用的 Alpha 元件為 255,所以是不透明的。 第二個和第三個橢圓形使用的 Alpha 元件為 128,因此是半透明的;您可以看到穿透橢圓形的背景影像。 呼叫 Graphics::SetCompositingQuality會導致第三個橢圓形的混合與 gamma 修正一起完成。
Image image(L"Texture1.jpg");
graphics.DrawImage(&image, 50, 50, image.GetWidth(), image.GetHeight());
SolidBrush opaqueBrush(Color(255, 0, 0, 255));
SolidBrush semiTransBrush(Color(128, 0, 0, 255));
graphics.FillEllipse(&opaqueBrush, 35, 45, 45, 30);
graphics.FillEllipse(&semiTransBrush, 86, 45, 45, 30);
graphics.SetCompositingQuality(CompositingQualityGammaCorrected);
graphics.FillEllipse(&semiTransBrush, 40, 90, 86, 30);
下圖顯示上述程式碼的輸出。