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 매개 변수는 변환을 지정합니다. 스크러스트에 적용하면 dstrect가 발생하는 변환입니다.
Graphics 개체의 Graphics::BeginContainer 메서드를 호출하면 Graphics 개체의 상태를 보유하는 정보 블록이 스택에 배치됩니다. Graphics::BeginContainer 메서드는 해당 정보 블록을 식별하는 값을 반환합니다. 식별 값을 Graphics::EndContainer 메서드에 전달하면 정보 블록이 스택에서 제거되고 Graphics::BeginContainer 호출 당시의 상태로 Graphics 개체를 복원하는 데 사용됩니다.
컨테이너를 중첩할 수 있습니다. 즉, Graphics::EndContainer 메서드를 호출하기 전에 Graphics::BeginContainer 메서드를 여러 번 호출할 수 있습니다. 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 메서드에 전달하여 컨테이너에 대한 변환을 지정합니다. 이 코드는 Graphics::FillEllipse 를 두 번 호출합니다. 즉, 컨테이너 내부에 한 번, 컨테이너 외부에서 한 번 호출합니다( 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 포함) |
라이브러리 | Gdiplus.lib |
DLL | Gdiplus.dll |