2016-11-17 56 views
1

我有一个形式,是比屏幕更高,更高当我尝试模拟与在Delphi 7,从形式获得一个位图时,形式大于屏幕

keybd_event(VK_SNAPSHOT, 1, 0, 0); 

PrintScreen键当然,表格会被裁剪掉。 所以我试着做以下活动形式:

Clipboard.Assign(GetFormImage); 

但尽管如此,即使是在这种情况下,位图被裁剪过。

有一个老德尔福组件,BDPrint,这是可以在这里找到:

http://www.efg2.com/Lab/Library/Delphi/Printing/ 

,但它不是可用了,那能打印表单创建一个临时的TImage,然后打印出来,甚至关闭屏幕部分,但我没有它的源代码了。

我怎样才能生成活动窗体的位图,同时还有屏幕外部分,并将其存储在剪贴板中?谢谢

回答

0

关闭我的头顶,我可以搜索周围的一些更多的,如果我有时间:

+0

这不会与屏幕外窗口 – kobik

+0

谢谢你现在。我对Windows内部数据结构不太熟悉,但是现在是时候了解它们了:)我会尽快通知您 – ZioBit

0

您不需要涉及剪贴板,或以其他方式捕获屏幕。尝试将表单的Handle属性传递给PrintWindow(),或者直接向该表单发送WM_PRINT消息。任何一个人都会让你指定一个HDC(比如TBitmap.Canvas.Handle属性中的那个),让窗口自己绘制。