|
■ (渋木宏明(ひどり) さん) /mあ@反省中 に返信
返事遅くなってすいません!
渋木宏明(ひどり) さん > OleDraw() API を使えば、表示領域に収まらないトコもビットマップに書き込めたはずです。
すいません、OleDrawを使っているのですが、WebBrowserで表示してから使っています。 使い方が間違っているのでしょうか? 使い方は下記の通りです。wbがWebBrowserのコントロールです。
doc2 = CType(wb.Document, mshtml.IHTMLDocument2) doc2.body.style.overflow = "visible" doc2.body.style.borderStyle = "none" doc2.body.parentElement.style.overflow = "visible" doc2.body.parentElement.style.borderStyle = "none" element2 = CType(doc2.body, mshtml.IHTMLElement2)
bmp_page = New Bitmap(wb.Width, wb.Height) Dim pUnk As IntPtr = Marshal.GetIUnknownForObject(wb.GetOcx()) g = Graphics.FromImage(bmp_page) Dim hdc As IntPtr = g.GetHdc OleDraw(pUnk, DVASPECT.DVASPECT_CONTENT, hdc, New Rectangle(0, 0, element2.scrollWidth, element2.scrollHeight))
pb.Width = element2.scrollWidth pb.Height = element2.scrollHeight pb.Image = bmp_page
Marshal.Release(pUnk) g.ReleaseHdc(hdc)
mあ@反省中 さん >ただキャプるだけならキャプラーでVectorへGo そうなんですよねぇ、フリーのソフトはいくつか見かけたんですが… ただ今回は、できれば自分で開発したいと思いまして…
|