2012-02-15 53 views

回答

0

我通過使用Win API解決了這個問題並拍攝了多個屏幕截圖,然後在每個屏幕之間滾動,然後將它們連接在一起。

+0

你是如何滾動的?就像在第一次滾動之後,當這部分加載時,然後拍屏幕截圖,檢測屏幕截圖事件,然後滾動下一個事件? – zeetit 2013-12-09 15:20:57

1

您可以使用窗口將WM_PAINT重定向到帶有WM_PRINT和WM_PRINTCLIENT的離屏緩衝區。這比screenscraping更好,因爲它確保窗口的遮蔽部分(在其他窗口後面)無論如何都被繪製。如果您的目標窗口通過滾動子窗口位置進行滾動,則應應用WM_PRINT。只是也許它也有助於你的場景。

0

的代碼只是3條線是足夠

Bitmap b = new Bitmap(pnlOuter.Width, pnlOuter.Height); 
pnlOuter.DrawToBitmap(b, new Rectangle(0, 0, pnlOuter.Width, pnlOuter.Height)); 
b.Save("D:\\bitmapImage.jpg"); 

pnlOuter是包含在圖像中顯示具有擴展高度所有控件以包含所有內控制面板。包含表單可能已啓用滾動條。