3

IWebBrowser2コントロールのキャンバス全体をビットマップにレンダリングしようとしています。IViewObject :: Drawは最も有望なアプローチのようですが、表示するためにスクロールが必要なものをレンダリングすることはできません。スクロールを自動化して画像をつなぎ合わせることができましたが、これは固定位置の要素では奇妙に見えます。これも実行可能ですか?

さらに、コントローラーのサイズを、スクロールせずにコンテンツ全体を表示できるサイズに設定しようとしましたが、Windowsは最大サイズを現在の画面解像度に制限しているため、部分的にしか表示されません。

どんな助けでも大歓迎です。私は現在、Win7とIE8のコンテキストでこれを行っていますが、それはそれほど重要ではないと思います。

4

2 に答える 2

2

申し訳ありませんが、私がこれに対する答えをフォローアップするのにとても時間がかかりました。

Windowsをだまして、仮想画面の解像度よりも大きいウィンドウのサイズを変更し、PrintWindowやIViewObject :: Drawなどの関数でクライアント領域全体(つまり、ブラウザーキャンバス)をキャプチャできるようにする方法を詳しく説明した記事を書きました。

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

この手法の実際の実装は、GitHubのSnapsIEリポジトリ(ユーザー名:nirvdrum)にあります。残念ながら、2つのハイパーリンクを投稿するのに十分なカルマがありません。ただし、リポジトリは記事からリンクされています。

于 2010-03-25T13:48:55.790 に答える
0

必要以上の描画を避ける IE の最適化である可能性が非常に高いです。ウィンドウをスクロールして、ループ内で IViewObject::Draw を呼び出しても、アニメーションは発生しませんか?

Windows が最大サイズを現在の画面解像度に制限していることに驚きました。それについてよろしいですか?

于 2010-02-04T09:39:17.123 に答える