【发布时间】:2014-10-25 17:13:15
【问题描述】:
我有一个透明/不透明的表格,我希望利用它来“解释”在所述透明表格下面的程序中发生了什么。
为了评估正在发生的事情,我需要 drawtobitmap 以返回控件在屏幕上的实际外观并具有透明度,但它只是简单地捕获表单的实体版本 - 基本上是如果它没有的样子设置不透明度值。
我是否可以使用一些 OnPaint 覆盖技巧来解决这个问题,或者我是否必须将 graphics.copyfromscreen() 与相关矩形一起使用?
【问题讨论】:
-
您可以尝试自己发送 WM_PRINT 消息 (p/invoke
SendMessage()),提供引用您自己的位图的HDC。然后,您可以将位图初始化为透明(所有像素 alpha 为 0),而不是获取任何DrawToBitmap()开头的内容。 -
您要求窗口自行绘制,这样您就可以得到窗口的样子,而不是下面可见的所有其他窗口的样子。当然,您需要 CopyFromScreen() 来捕捉所有像素。