Graphics::BeginContainer (constRectF&,constRectF&,Unit) 方法 (gdiplusgraphics.h)
Graphics::BeginContainer 方法會開始新的圖形容器。
語法
GraphicsContainer BeginContainer(
const RectF & dstrect,
const RectF & srcrect,
Unit unit
);
參數
dstrect
與 srcrect 一起指定容器轉換的矩形參考。
srcrect
與 dstrect 一起指定容器轉換的矩形參考。
unit
容器的測量單位。
傳回值
類型:類型: GraphicsContainer
這個方法會傳回可識別容器的值。
備註
使用這個方法來建立巢狀圖形容器。 圖形容器可用來保留圖形狀態,例如轉換、裁剪區域和各種轉譯屬性。
Graphics::BeginContainer 方法會傳回 GraphicsContainer 類型的值。 當您完成使用容器時,請將該值傳遞至 Graphics::EndContainer 方法。 GraphicsContainer 數據類型是在 Gdiplusenums.h 中定義。
dstrect 和 srcrect 參數會指定轉換。 這是套用至 srcrect 時會產生 dstrect 的轉換。
當您呼叫 Graphics 物件的 Graphics::BeginContainer 方法時,保留 Graphics 物件狀態的資訊區塊會放在堆棧上。 Graphics::BeginContainer 方法會傳回識別該資訊區塊的值。 當您將識別值傳遞至 Graphics::EndContainer 方法時,資訊區塊會從堆棧中移除,並用來將 Graphics 物件還原到 Graphics::BeginContainer 呼叫時的狀態。
容器可以是巢狀的;也就是說,您可以在呼叫 Graphics::EndContainer 方法之前多次呼叫 Graphics::BeginContainer 方法。 每次呼叫 Graphics::BeginContainer 方法時,都會在堆疊上放置資訊區塊,而且您會收到資訊區塊的標識碼。 當您將其中一個標識符傳遞至 Graphics::EndContainer 方法時, Graphics 物件會傳回至在 BeginContainer 呼叫傳回該特定標識符時的狀態。 該 Graphics::BeginContainer 呼叫放置在堆棧上的資訊區塊會從堆棧中移除,而且該圖形::BeginContainer 呼叫之後,該堆棧上放置的所有資訊區塊也會移除。
呼叫 Graphics::Save 方法會將資訊區塊放在與 呼叫 Graphics::BeginContainer 方法相同的堆棧上。 就像 Graphics::EndContainer 呼叫與 Graphics::BeginContainer 呼叫配對一樣, Graphics::Restore 呼叫會與 Graphics::Save 呼叫配對。
當您呼叫 Graphics::EndContainer 時,在圖形::Save 或 Graphics::BeginContainer) 對應呼叫 Graphics::BeginContainer 之後,會將所有資訊區塊放在堆棧上 (。 同樣地,當您呼叫 Graphics::Restore 時,在圖形::Save 或 Graphics::BeginContainer) 對應呼叫 Graphics::Save 之後,堆棧 (上放置的所有資訊區塊都會從堆棧中移除。
如需圖形容器的詳細資訊,請參閱 巢狀圖形容器。
範例
下列範例會呼叫 BeginContainer 方法來建立圖形容器。 程序代碼會將兩個矩形傳遞至 BeginContainer 方法,以指定容器的轉換。 程序代碼會在呼叫 Graphics::EndContainer) 之後呼叫 Graphics::FillEllipse 兩次:一次在容器內,一次位於容器外部 (。
VOID Example_BeginContainer3(HDC hdc)
{
Graphics graphics(hdc);
// Define a translation and scale transform for the container.
RectF srcRect(0, 0, 200, 100);
RectF 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 a rectangle in the container.
SolidBrush redBrush(Color(255, 255, 0, 0));
graphics.FillEllipse(&redBrush, 0, 0, 100, 60);
// End the container.
graphics.EndContainer(container);
// Fill a rectangle 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) |
程式庫 | Gdiplus.lib |
Dll | Gdiplus.dll |