다음을 통해 공유


IOleInPlaceSiteWindowless::ScrollRect 메서드(ocidl.h)

개체가 화면의 현재 위치 활성 이미지 내에서 영역을 스크롤할 수 있도록 합니다.

구문

HRESULT ScrollRect(
  [in] INT     dx,
  [in] INT     dy,
  [in] LPCRECT pRectScroll,
  [in] LPCRECT pRectClip
);

매개 변수

[in] dx

x축을 스크롤할 크기입니다.

[in] dy

y축을 스크롤할 양입니다.

[in] pRectScroll

포함된 창의 클라이언트 좌표로 스크롤할 사각형입니다. NULL 값은 전체 개체를 나타냅니다.

[in] pRectClip

클립할 사각형입니다. 이 사각형으로 스크롤되는 픽셀만 그려집니다. 밖으로 스크롤하는 픽셀은 그렇지 않습니다. 이 매개 변수가 NULL이면 사각형이 잘리지 않습니다.

반환 값

이 메서드는 성공에 대한 S_OK 반환합니다.

설명

이 메서드는 호출자가 투명할 수 있고 불투명하거나 투명한 겹치는 개체가 있을 수 있다는 사실을 고려해야 합니다. 이 메서드에서 사용할 수 있는 알고리즘에 대한 제안은 아래의 구현자에 대한 참고 사항을 참조하세요.

구현자에 대한 참고 사항

컨테이너는 다양한 방법으로 이 메서드를 구현할 수 있습니다. 그러나 스크롤을 요청하는 개체가 투명하거나 배경이 고정되지 않을 수 있는 가능성을 모두 고려해야 합니다. 또한 컨테이너는 겹치는 개체가 있을 수 있다는 점을 고려해야 합니다.

이 메서드를 구현하는 가장 간단한 방법은 단순히 스크롤할 사각형을 다시 그리는 것입니다.

이 간단한 구현에 추가된 구체화는 스크롤을 요청하는 개체가 불투명하고 개체의 배경이 견고하며 겹치는 개체가 없을 때 ScrollDC 함수를 사용하는 것입니다.

보다 정교한 구현은 다음 절차를 사용할 수 있습니다.

  • IViewObjectEx::GetViewStatus를 사용하여 개체가 불투명하고 단색 배경인지 확인합니다. 그렇지 않은 경우 스크롤할 사각형을 무효화하기만 하면됩니다. 스크롤 사각형이 부분적으로 투명한 개체의 불투명 영역에 있는지 여부를 검사 구체화가 추가되었습니다.
  • 창 디바이스 컨텍스트를 가져옵니다.
  • IViewObjectEx::GetRect에서 반환된 겹치는 개체의 불투명 부분을 클리핑합니다.
  • 마지막으로 ScrollDC 함수를 호출합니다.
  • 겹치는 개체의 이전에 무효화된 투명 부분을 다시 그렸습니다.
스크롤 및 클리핑 사각형에 관계없이 개체의 사이트 사각형에 포함된 픽셀만 그립니다. 이 메서드가 반환되기 전에 스크롤 작업으로 발견된 영역이 무효화되고 즉시 다시 그려집니다.

이 메서드가 반환하기 전에 이 메서드에서 생성된 모든 다시 그리기가 동기적으로 발생해야 합니다.

이 메서드는 스크롤 작업 중에 자동으로 캐리트를 숨기고 클립 사각형 내에 있는 경우 스크롤 크기만큼 캐리트를 이동해야 합니다.

요구 사항

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

추가 정보

IOleInPlaceSiteWindowless

IViewObjectEx::GetRect

IViewObjectEx::GetViewStatus