図形を塗りつぶすときは、Brush オブジェクトのアドレスを、Graphics クラスのいずれかの塗りつぶしメソッドに渡す必要があります。 SolidBrush コンストラクターの 1 つのパラメーターは、Color オブジェクトです。 不透明な図形を塗りつぶすには、色のアルファ 成分を 255 に設定します。 半透明の図形を塗りつぶすには、アルファ 成分を 1 ~ 254 の任意の値に設定します。
半透明の図形を塗りつぶすと、図形の色が背景の色とブレンドされます。 アルファ コンポーネントは、図形と背景色を混在させる方法を指定します。0 に近いアルファ値では背景色の重みが増え、アルファ値が 255 に近いほど図形の色の重みが大きくなります。
次の例では、画像を描画し、画像と重なる 3 つの楕円を塗りつぶします。 最初の楕円は 255 のアルファ成分を使用するため、不透明です。 2番目と3番目の楕円は、アルファ成分128を使用しているため、半透明になっています。楕円を通して背景画像を見ることができます。 Graphics::SetCompositingQuality を呼び出すと、3 番目の楕円のブレンドがガンマ補正と組み合わせて実行されます。
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);
次の図は、上記のコードの出力を示しています。
3 つの楕円によって重ね合わされた画像を示す図