方法: 描画する Graphics オブジェクトを作成する
GDI+ を使用して、線や図形の描画、テキストのレンダリング、イメージの表示と操作を行うには、まず Graphics オブジェクトを作成する必要があります。 Graphics オブジェクトは GDI+ の描画サーフェイスを表し、グラフィック画像を作成するために使用されるオブジェクトです。
グラフィックスを操作するには、次の 2 つの手順を行います。
グラフィックス オブジェクトを作成する
グラフィックス オブジェクトは、さまざまな方法で作成できます。
グラフィックス オブジェクトを作成するには
グラフィックス オブジェクトへの参照は、フォームまたはコントロールの Paint イベントの PaintEventArgs の一部として受け取ります。 これは、通常、コントロールの描画コードを作成するときに、グラフィックス オブジェクトへの参照を取得する方法です。 同様に、PrintDocument の PrintPage イベントを処理するときに、PrintPageEventArgs のプロパティとしてグラフィックス オブジェクトを取得することもできます。
\- または -
コントロールまたはフォームの CreateGraphics メソッドを呼び出して、そのコントロールまたはフォームの描画サーフェイスを表す Graphics オブジェクトへの参照を取得します。 既に存在するフォームまたはコントロールの上に描画する場合は、このメソッドを使用します。
\- または -
Image から継承する任意のオブジェクトから Graphics オブジェクトを作成します。 この方法は、既存のイメージを変更する場合に便利です。
以降のセクションで、これらの各プロセスについて詳しく説明します。
描画イベント ハンドラーの PaintEventArgs
コントロールの PaintEventHandler または PrintDocument の PrintPage をプログラミングするとき、グラフィックス オブジェクトは PaintEventArgs または PrintPageEventArgs のプロパティの 1 つとして提供されます。
描画イベントの PaintEventArgs から Graphics オブジェクトへの参照を取得するには
Graphics オブジェクトを宣言します。
PaintEventArgs の一部として渡される Graphics オブジェクトを参照するように変数を割り当てます。
フォームまたはコントロールを描画するコードを挿入します。
次の例は、Paint イベントで PaintEventArgs から Graphics オブジェクトを参照する方法を示しています。
Private Sub Form1_Paint(sender As Object, pe As PaintEventArgs) Handles _ MyBase.Paint ' Declares the Graphics object and sets it to the Graphics object ' supplied in the PaintEventArgs. Dim g As Graphics = pe.Graphics ' Insert code to paint the form here. End Sub
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs pe) { // Declares the Graphics object and sets it to the Graphics object // supplied in the PaintEventArgs. Graphics g = pe.Graphics; // Insert code to paint the form here. }
private: void Form1_Paint(System::Object ^ sender, System::Windows::Forms::PaintEventArgs ^ pe) { // Declares the Graphics object and sets it to the Graphics object // supplied in the PaintEventArgs. Graphics ^ g = pe->Graphics; // Insert code to paint the form here. }
CreateGraphics メソッド
コントロールまたはフォームの CreateGraphics メソッドを使用して、そのコントロールまたはフォームの描画サーフェイスを表す Graphics オブジェクトへの参照を取得することもできます。
CreateGraphics メソッドを使用して Graphics オブジェクトを作成するには
グラフィックスをレンダリングするフォームまたはコントロールの CreateGraphics メソッドを呼び出します。
Dim g as Graphics ' Sets g to a Graphics object representing the drawing surface of the ' control or form g is a member of. g = Me.CreateGraphics
Graphics g; // Sets g to a graphics object representing the drawing surface of the // control or form g is a member of. g = this.CreateGraphics();
Graphics ^ g; // Sets g to a graphics object representing the drawing surface of the // control or form g is a member of. g = this->CreateGraphics();
イメージ オブジェクトから作成する
さらに、Image クラスから派生した任意のオブジェクトからグラフィックス オブジェクトを作成することもできます。
イメージから Graphics オブジェクトを作成するには
Graphics.FromImage メソッドをイメージ変数の名前を指定して呼び出し、そこから Graphics オブジェクトを作成します。
次の例は、Bitmap オブジェクトの使用方法を示しています。
Dim myBitmap as New Bitmap("C:\Documents and Settings\Joe\Pics\myPic.bmp") Dim g as Graphics = Graphics.FromImage(myBitmap)
Bitmap myBitmap = new Bitmap(@"C:\Documents and Settings\Joe\Pics\myPic.bmp"); Graphics g = Graphics.FromImage(myBitmap);
Bitmap ^ myBitmap = gcnew Bitmap("D:\\Documents and Settings\\Joe\\Pics\\myPic.bmp"); Graphics ^ g = Graphics::FromImage(myBitmap);
注意
Graphics オブジェクトは、16 ビット、24 ビット、32 ビットの .bmp ファイルなど、インデックスのない .bmp ファイルからのみ作成できます。 インデックス付きの .bmp ファイルのピクセルにカラー テーブルのインデックスが保持されているのとは対照的に、インデックスのない .bmp ファイルでは各ピクセルに色が保持されます。
図形とイメージの描画と操作
Graphics オブジェクトを作成したら、線や図形の描画、テキストのレンダリング、イメージの表示と操作に使用できます。 Graphics オブジェクトと共に使用するプリンシパル オブジェクトは次のとおりです。
Pen クラス: 線の描画、図形のアウトライン表示、またはその他の幾何学的表現のレンダリングに使用します。
Brush クラス: 図形、イメージ、テキストの塗りつぶしなど、グラフィックスの領域を塗りつぶすために使用します。
Font クラス: テキストのレンダリング時に使用する図形の説明を提供します。
Color 構造体: 表示するさまざまな色を表します。
作成した Graphics オブジェクトを使用するには
上記の適切なオブジェクトを使用して、必要なものを描画します。
詳細については、次のトピックを参照してください。
レンダリングするもの 解決方法については、 路線 方法: Windows フォームに直線を描画する 図形 方法: 形状のアウトラインを描画する テキスト 方法: Windows フォームにテキストを描画する 画像 方法: GDI+ を使用してイメージをレンダリングする
関連項目
.NET Desktop feedback