クラスベースのインターフェイスの構造体
Windows GDI+ への C++ インターフェイスには、約 40 個のクラス、50 個の列挙体、および 6 つの構造体が含まれています。 また、クラスのメンバーではない関数がいくつかあります。
GDI+ 関数が呼び出される前に、名前空間 Gdiplus が使用されていることを示す必要があります。 次のステートメントは、Gdiplus 名前空間がアプリケーションで使用されていることを示しています。
using namespace Gdiplus;
Graphics クラスは GDI+ インターフェイスの中核です。実際に線、曲線、図、画像、テキストを描画するクラスです。
多くのクラスは Graphics クラスと連携します。 たとえば、 Graphics::D rawLine メソッドは 、描画 する線の属性 (色、幅、ダッシュ スタイルなど) を保持する Pen オブジェクトへのポインターを受け取ります。 Graphics::FillRectangle メソッドは LinearGradientBrush オブジェクトへのポインターを受け取ることができます。このオブジェクトは Graphics オブジェクトと連携して、四角形に徐々に変化する色を塗りつぶします。 Font オブジェクトと StringFormat オブジェクトは 、Graphics オブジェクトがテキストを描画する方法に影響します。 Matrix オブジェクトは、画像の回転、拡大縮小、反転に使用される Graphics オブジェクトのワールド変換を格納および操作します。
特定のクラスは、主に構造化データ型として機能します。 これらのクラスの一部 ( Rect、 Point、 Size など) は汎用です。 その他は特殊な目的のためであり、ヘルパー クラスと見なされます。 たとえば、 BitmapData クラスは Bitmap クラスのヘルパーであり、 PathData クラスは GraphicsPath クラスのヘルパーです。 GDI+ では、データの整理に使用されるいくつかの構造体も定義されています。 たとえば、 ColorMap 構造体は、色変換テーブルの 1 つのエントリを形成する Color オブジェクトのペアを保持します。
GDI+ では、関連する定数のコレクションである列挙型がいくつかの定義されます。 たとえば、LineJoin 列挙には、要素 LineJoinBevel、LineJoinMiter、および LineJoinRound が含まれています。この要素は、2 つの行を結合するために使用できるスタイルを指定します。
GDI+ には、どのクラスにも含まれていないいくつかの関数が用意されています。 これらの関数の 2 つは 、GdiplusStartup と GdiplusShutdown です。 他の GDI+ 呼び出しを行う前に GdiplusStartup を呼び出す必要があります。GDI+ の使用が完了したら、 GdiplusShutdown を呼び出す必要があります。