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 매개 변수는 변환을 지정합니다. 스크러스트에 적용하면 dstrect가 발생하는 변환입니다.
Graphics 개체의 Graphics::BeginContainer 메서드를 호출하면 Graphics 개체의 상태를 보유하는 정보 블록이 스택에 배치됩니다. Graphics::BeginContainer 메서드는 해당 정보 블록을 식별하는 값을 반환합니다. 식별 값을 Graphics::EndContainer 메서드에 전달하면 정보 블록이 스택에서 제거되고 Graphics::BeginContainer 호출 당시의 상태로 Graphics 개체를 복원하는 데 사용됩니다.
컨테이너를 중첩할 수 있습니다. 즉, Graphics::EndContainer 메서드를 호출하기 전에 Graphics::BeginContainer 메서드를 여러 번 호출할 수 있습니다. Graphics::BeginContainer 메서드를 호출할 때마다 정보 블록이 스택에 배치되고 정보 블록에 대한 식별자가 표시됩니다. 이러한 식별자 중 하나를 Graphics::EndContainer 메서드에 전달하면 Graphics 개체는 특정 식별자를 반환한 BeginContainer 호출 당시의 상태로 반환됩니다. Graphics::BeginContainer 호출에 의해 스택에 배치된 정보 블록이 스택에서 제거되고 해당 Graphics::BeginContainer 호출 이후에 해당 스택에 배치된 모든 정보 블록도 제거됩니다.
Graphics::Save 메서드를 호출하면 Graphics::BeginContainer 메서드에 대한 호출과 동일한 스택에 정보 블록이 배치됩니다. Graphics::EndContainer 호출이 Graphics::BeginContainer 호출과 쌍을 이루는 것처럼 Graphics::Restore 호출은 Graphics::Save 호출과 쌍을 이릅니다.
Graphics::EndContainer를 호출하면 그래픽::BeginContainer에 대한 해당 호출 후 스택에 배치된 모든 정보 블록(Graphics::Save 또는 Graphics::BeginContainer)이 스택에서 제거됩니다. 마찬가지로 Graphics::Restore를 호출하면 Graphics::Save에 대한 해당 호출 후 스택에 배치된 모든 정보 블록(Graphics::Save 또는 Graphics::BeginContainer)이 스택에서 제거됩니다.
그래픽 컨테이너에 대한 자세한 내용은 중첩 그래픽 컨테이너를 참조하세요.
예제
다음 예제에서는 BeginContainer 메서드를 호출하여 그래픽 컨테이너를 만듭니다. 코드는 BeginContainer 메서드에 두 개의 사각형을 전달하여 컨테이너에 대한 변환을 지정합니다. 이 코드는 Graphics::FillEllipse 를 두 번 호출합니다. 즉, 컨테이너 내부에 한 번, 컨테이너 외부에서 한 번 호출합니다( Graphics::EndContainer 호출 후).
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 |