다음을 통해 공유


IViewObjectEx::GetNaturalExtent 메서드(ocidl.h)

사용자가 크기를 조정할 때 사용할 개체에 대한 컨테이너의 크기 조정 힌트를 제공합니다.

구문

HRESULT GetNaturalExtent(
  [in]  DWORD          dwAspect,
  [in]  LONG           lindex,
  [in]  DVTARGETDEVICE *ptd,
  [in]  HDC            hicTargetDev,
  [in]  DVEXTENTINFO   *pExtentInfo,
  [out] LPSIZEL        pSizel
);

매개 변수

[in] dwAspect

요청된 그리기 측면입니다. DVASPECT 열거형에 의해 정의된 다음 값 중 어느 것이라도 될 수 있습니다.

의미
DVASPECT_CONTENT
컨테이너 내부에 포함된 개체로 표시될 수 있도록 컨트롤의 표현을 제공합니다. 일반적으로 복합 문서 개체에 대해 이 값을 지정합니다. 이 표시 방식은 화면 또는 프린터에 대해 제공될 수 있습니다.
DVASPECT_DOCPRINT
파일 메뉴의 인쇄 명령을 사용하여 프린터에 인쇄된 것처럼 화면에 컨트롤의 표현을 제공합니다. 설명된 데이터가 페이지 순서를 나타낼 수도 있습니다.
DVASPECT_ICON
컨트롤의 상징적인 표현을 제공합니다.
DVASPECT_THUMBNAIL
검색 도구에 표시할 수 있도록 개체의 썸네일 표현을 제공합니다. 썸네일은 메타파일로 래핑될 가능성이 있는 약 120x120픽셀, 16색(권장) 디바이스 독립적 비트맵입니다.

[in] lindex

그리기 작업에 관심이 있는 개체의 부분을 나타냅니다. 해석은 dwAspect 매개 변수의 값에 따라 달라집니다. 자세한 내용은 DVASPECT 열거형을 참조하세요.

[in] ptd

개체를 렌더링할 디바이스를 설명하는 대상 디바이스 구조에 대한 포인터입니다. NULL인 경우 기본 대상 디바이스(일반적으로 디스플레이)에 대해 뷰를 렌더링해야 합니다. NULL 이외의 값은 hicTargetDevhdcDraw와 함께 해석됩니다. 예를 들어 hdcDraw 가 프린터를 디바이스 컨텍스트로 지정하는 경우 ptd 매개 변수는 해당 프린터 디바이스를 설명하는 구조를 가리킵니다. hicTargetDev가 유효한 값이거나 hicTargetDevNULL인 경우 인쇄 미리 보기 모드로 표시될 수 있는 경우 데이터가 실제로 인쇄될 수 있습니다.

[in] hicTargetDev

개체가 디바이스 메트릭을 추출하고 디바이스의 기능을 테스트할 수 있는 ptd 매개 변수로 표시된 대상 디바이스의 정보 컨텍스트를 지정합니다. ptdNULL이면 이고, 개체는 hicTargetDev 매개 변수의 값을 무시해야 합니다.

[in] pExtentInfo

크기 조정 데이터를 지정하는 DVEXTENTINFO 구조체에 대한 포인터입니다.

[out] pSizel

개체에서 반환된 데이터 크기 조정에 대한 포인터입니다. 반환된 크기 조정 데이터는 조정되지 않은 차원에 대해 -1로 설정됩니다. 즉 , cx 가 -1이면 너비가 조정되지 않았고 , cy 가 -1이면 높이가 조정되지 않았습니다. 크기가 조정되지 않았음을 나타내는 E_FAIL 반환되면 pSizelNULL일 수 있습니다.

반환 값

이 메서드는 성공에 대한 S_OK 반환합니다. 다른 가능한 반환 값은 다음과 같습니다.

반환 코드 설명
E_FAIL
이 메서드는 지정된 dwAspect에 대해 구현되지 않았거나 크기가 조정되지 않았습니다.
E_NOTIMPL
이 메서드는 구현되지 않았습니다.

설명

컨트롤의 크기를 조정하는 일반적인 방법은 두 가지입니다. 첫 번째 방법은 크기 조정 자체에 대한 제어 책임을 부여합니다. 두 번째 방법은 컨트롤 크기 조정에 대한 컨테이너 책임을 부여합니다. 첫 번째 접근 방식을 자동 크기 조정이라고 합니다. 두 번째 접근 방식에는 콘텐츠 크기 조정 및 정수 계열 크기 조정이라는 두 가지 대안이 있습니다.

IViewObjectEx::GetNaturalExtent 메서드는 콘텐츠 및 정수 계열 크기 조정을 모두 지원합니다. 콘텐츠 크기 조정에서 컨테이너는 DVEXTENTINFO 구조를 개체가 제안된 크기를 반환하는 개체에 전달합니다. 정수 계열 크기 조정에서 컨테이너는 DVEXTENTINFO의 개체에 기본 크기를 전달하고 개체는 실제로 높이를 조정합니다. 정수 계열 크기 조정은 사용자가 디자인 모드에서 새 크기를 고무밴드할 때 사용됩니다.

자동 크기 조정은 일반적으로 자동 크기 조정 속성이 활성화되고 연결된 텍스트가 변경된 경우 크기가 조정되는 Label 컨트롤과 같은 개체에서 발생합니다. 자동 크기 조정은 개체의 상태에 따라 다르게 처리됩니다.

개체가 비활성 상태이면 다음이 발생합니다.

  1. 개체는 IOleClientSite::RequestNewObjectLayout을 호출합니다.
  2. 컨테이너는 IOleObject::GetExtent 를 호출하고 새 익스텐트를 검색합니다.
  3. 컨테이너는 IOleObject::SetExtent 를 호출하고 새 익스텐트를 조정합니다.
개체가 활성 상태이면 다음이 발생합니다.
  1. 개체는 IOleInPlaceSite::OnPosRectChange 를 호출하여 크기 조정이 필요하도록 지정합니다.
  2. 컨테이너는 IOleInPlaceObject::SetObjectRects를 호출하고 새 크기를 지정합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 ocidl.h

추가 정보

IOleClientSite::RequestNewObjectLayout

IOleInPlaceObject::SetObjectRects

IOleInPlaceSite::OnPosRectChange

IOleObject::GetExtent

IOleObject::SetExtent

IViewObjectEx