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::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 |