【发布时间】:2011-12-28 11:20:11
【问题描述】:
我有一组表单,它们被可视化为主表单的 MDI 选项卡子项(通过 Infragistics UltraTabbedMDIManager,但这个 API 并不那么重要)
我使用 GetDC()、CreateCompatibleDC()、CreateCompatibleBitmap()、SelectObject()、BitBlt().. 将这些表单的设备上下文的位图 blit 到一些内存中。 这有效,但仅适用于活动的 MDI 子窗体,即用户可见的窗体。 如果我为未激活的表单(当前未显示的任何选项卡)执行此操作,我会在内存区域中看到黑屏,或者我什至会在其上方获得屏幕的“副本”。 如果我对不再可见的表单执行此操作,也会出现黑屏。
我应该怎么做才能获得这些隐藏表单的位图?我必须求助于缓存还是我可以使用其他一些技巧? 我不能使用 Winforms DrawToBitmap() 函数,因为表单包含一些无法用它检索的低级图形内容。 如何使用 winapi 检索这些“隐藏”表单 DC 的位图?
【问题讨论】:
-
您的确切问题没有简单的答案。你到底需要画什么?内容,完整形式,...
-
在下面查看我自己的答案。顺便说一句,我不同意所显示内容的性质有任何相关性。