2010-01-29 1 views
3

IWebBrowser2 컨트롤의 전체 캔버스를 비트 맵에 렌더링하려고했습니다. IViewObject :: Draw는 가장 유망한 접근 방법 인 것처럼 보이지만 표시 할 스크롤이 필요한 모든 것을 렌더링 할 수는 없습니다. 스크롤과 자동으로 스티치를 자동화 할 수는 있지만 고정 된 위치 요소로 이상하게 보일 것입니다. 이것도 가능합니까?IViewObject :: Draw로 캔버스의 스크롤 영역을 렌더링하는 방법은 무엇입니까?

또한 컨트롤러의 크기를 스크롤하지 않고도 전체 내용을 표시 할 수있는 크기로 설정하려고 시도했지만 최대 크기를 현재 화면 해상도로 제한하므로 부분적으로 만 표시됩니다.

도움을 주시면 감사하겠습니다. 저는 현재 Win7과 IE8의 맥락에서 이것을하고 있습니다. 그러나 나는 그것이 중요하다고 생각하지 않습니다.

답변

2

죄송합니다.이 답변에 대한 답변을 받기까지 오랜 시간이 걸렸습니다.

필자는 Windows를 속여서 가상 화면 해상도보다 큰 창 크기를 조정할 수있는 방법을 자세히 설명하는 기사를 작성하여 PrintWindow 또는 IViewObject :: Draw와 같은 기능을 사용하여 전체 클라이언트 영역 (즉, 브라우저 캔버스) . (: nirvdrum 사용자 이름)

http://nirvdrum.com/2010/03/25/how-to-take-full-page-or-full-canvas-screenshots-in-windows.html

기술의 실제 구현은 GitHub의 내 SnapsIE 저장소에서 찾을 수 있습니다. 불행히도 나는 2 개의 하이퍼 링크를 올리기에 충분한 카르마가 없다. 저장소는 기사에서 연결됩니다.

0

IE 최적화를 통해 필요한 것 이상을 그릴 필요가 없습니다. 창을 스크롤하고 애니메이션이 생기지 않고 루프에서 IViewObject :: Draw를 호출 할 수 있습니까?

Windows의 최대 크기가 현재 화면 해상도보다 높습니다. 그거 확실하니?

+0

그래, 나는 그것에 대해 확신한다. CALL_WND_PROC에 대한 Windows 훅을 설치하고 새 메시지 프로세서를 주입하여 문제를 해결했습니다. 해당 프로세서에서 WM_GETMINMAXINFO 메시지를 수정하여 최대 크기를 변경할 수 있습니다. – nirvdrum

관련 문제