在Delphi 7中,当表单高于屏幕

时间:2016-11-17 10:20:10

标签: delphi bitmap clipboard

我有一个高于屏幕的表单,当我尝试使用

模拟printscreen键时
keybd_event(VK_SNAPSHOT, 1, 0, 0);

当然,表单会被裁剪掉。 所以我尝试在活动表单上执行以下操作:

Clipboard.Assign(GetFormImage);

但是,即使在这种情况下,位图也会被裁剪。

这里有一个旧的Delphi组件BDPrint:

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

但它不再可用了,它能够打印一个创建临时tImage的表单,然后打印它,甚至是屏幕外部分,但我没有它的源代码了。

如何使用屏幕外部分生成活动表单的位图,并将其存储在剪贴板中?谢谢

2 个答案:

答案 0 :(得分:0)

如果我有时间的话,我可以搜索更多的东西:

答案 1 :(得分:0)

您无需涉及剪贴板,也无需捕获屏幕。尝试将表单的Handle属性传递给PrintWindow(),或直接向表单发送WM_PRINT消息。任何一个都允许您为窗口指定HDC(例如TBitmap.Canvas.Handle属性中的一个)。