我有一个高于屏幕的表单,当我尝试使用
模拟printscreen键时keybd_event(VK_SNAPSHOT, 1, 0, 0);
当然,表单会被裁剪掉。 所以我尝试在活动表单上执行以下操作:
Clipboard.Assign(GetFormImage);
但是,即使在这种情况下,位图也会被裁剪。
这里有一个旧的Delphi组件BDPrint:
http://www.efg2.com/Lab/Library/Delphi/Printing/
但它不再可用了,它能够打印一个创建临时tImage的表单,然后打印它,甚至是屏幕外部分,但我没有它的源代码了。
如何使用屏幕外部分生成活动表单的位图,并将其存储在剪贴板中?谢谢
答案 0 :(得分:0)
如果我有时间的话,我可以搜索更多的东西:
答案 1 :(得分:0)
您无需涉及剪贴板,也无需捕获屏幕。尝试将表单的Handle
属性传递给PrintWindow()
,或直接向表单发送WM_PRINT
消息。任何一个都允许您为窗口指定HDC
(例如TBitmap.Canvas.Handle
属性中的一个)。