Share via


Graphics::BeginContainer(constRect&,constRect&,Unit) メソッド (gdiplusgraphics.h)

Graphics::BeginContainer メソッドは、新しいグラフィックス コンテナーを開始します。

構文

GraphicsContainer BeginContainer(
  [in, ref] const Rect & dstrect,
  [in, ref] const Rect & srcrect,
  [in]      Unit         unit
);

パラメーター

[in, ref] dstrect

型: const Rect

srcrect と共にコンテナーの変換を指定する四角形への参照。

[in, ref] srcrect

型: const Rect

dstrect と共にコンテナーの変換を指定する四角形への参照。

[in] unit

種類: 単位

コンテナーの測定単位。

戻り値

種類: GraphicsContainer

このメソッドは、コンテナーを識別する値を返します。

注釈

入れ子になったグラフィックス コンテナーを作成するには、このメソッドを使用します。 グラフィックス コンテナーは、変換、クリッピング領域、さまざまなレンダリング プロパティなど、グラフィックスの状態を保持するために使用されます。

Graphics::BeginContainer メソッドは GraphicsContainer 型の値を返します。 コンテナーの使用が完了したら、その値を Graphics::EndContainer メソッドに渡します。 GraphicsContainer データ型は Gdiplusenums.h で定義されています。

dstrect パラメーターと srcrect パラメーターは、変換を指定します。 これは、srcrect に適用されると dstrect が発生する変換です。

Graphics オブジェクトの Graphics::BeginContainer メソッドを呼び出すと、Graphics オブジェクトの状態を保持する情報ブロックがスタックに配置されます。 Graphics::BeginContainer メソッドは、その情報ブロックを識別する値を返します。 識別値を Graphics::EndContainer メソッドに渡すと、情報ブロックはスタックから削除され、Graphics::BeginContainer 呼び出し時の状態に Graphics オブジェクトを復元するために使用されます。

コンテナーは入れ子にすることができます。つまり、 Graphics::BeginContainer メソッドを複数回呼び出してから Graphics::EndContainer メソッドを呼び出すことができます。 Graphics::BeginContainer メソッドを呼び出すたびに、情報ブロックがスタックに配置され、情報ブロックの識別子を受け取ります。 これらの識別子のいずれかを Graphics::EndContainer メソッドに渡すと、 Graphics オブジェクトは、その特定の識別子を返した Graphics::BeginContainer 呼び出し時の状態に返されます。 その Graphics::BeginContainer 呼び出しによってスタックに配置された情報ブロックはスタックから削除され、 その Graphics::BeginContainer 呼び出しの後にそのスタックに配置されたすべての情報ブロックも削除されます。

Graphics::Save メソッドの呼び出しは、Graphics::BeginContainer メソッドの呼び出しと同じスタックに情報ブロックを配置します。 Graphics::EndContainer 呼び出しが Graphics::BeginContainer 呼び出しとペアになっているのと同様に、Graphics::Restore 呼び出しは Graphics::Save 呼び出しとペアになります。

注意Graphics::EndContainer を呼び出すと、Graphics::BeginContainer への対応する呼び出しの後に、スタックに配置されたすべての情報ブロック (Graphics::Save または Graphics::BeginContainer によって) がスタックから削除されます。 同様に、 Graphics::Restore を呼び出すと、Graphics::Save への対応する呼び出しの後にスタックに配置されたすべての情報ブロック ( Graphics::Save または Graphics::BeginContainer によって ) がスタック から削除されます。
 
グラフィックス コンテナーの詳細については、「 入れ子になったグラフィックス コンテナー」を参照してください。

次の例では 、Graphics::BeginContainer メソッドを呼び出してグラフィックス コンテナーを作成します。 このコードでは、 Graphics::BeginContainer メソッドに 2 つの四角形を渡すことによって、コンテナーの変換を指定します。 このコードでは 、Graphics::FillEllipse を 2 回呼び出します。コンテナー内に 1 回、コンテナーの外に 1 回 ( Graphics::EndContainer を呼び出した後)。

VOID Example_BeginContainer2(HDC hdc)
{
   Graphics graphics(hdc);

   // Define a translation and scale transformation for the container.
   Rect srcRect(0, 0, 200, 100);
   Rect destRect(100, 100, 200, 200);

   // Create a graphics container with a (100, 100) translation 
   // and (1, 2) scale.
   GraphicsContainer container;
   container = graphics.BeginContainer(destRect, srcRect, UnitPixel);

   // Fill an ellipse in the container.
   SolidBrush redBrush(Color(255, 255, 0, 0));
   graphics.FillEllipse(&redBrush, 0, 0, 100, 60);

   // End the container.
   graphics.EndContainer(container);

   // Fill the same ellipse outside the container.
   SolidBrush blueBrush(Color(255, 0, 0, 255));
   graphics.FillEllipse(&blueBrush, 0, 0, 100, 60);
}

要件

   
サポートされている最小のクライアント Windows XP、Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー gdiplusgraphics.h (Gdiplus.h を含む)
Library Gdiplus.lib
[DLL] Gdiplus.dll

こちらもご覧ください

グラフィックス

グラフィックス コンテナー

Graphics::EndContainer

Graphics::Restore

Graphics::Save

グラフィックス コンテナーの使用