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 |