在我们用 MFC 编写的 MDI 应用程序中,我们有一个功能可以将 MDI 客户区的屏幕截图保存到文件中。我们目前正在做一个从屏幕到位图的BitBlt,然后保存。问题是某些 MDI 子窗口的内容由 OpenGL 渲染,在目标位图中,这些区域显示为空白或乱码。
我已经考虑了一些替代方案:
- 直接提取 OpenGL 内容(使用 glReadPixels),并将其绘制到屏幕位图的相关部分。
- 模拟 ALT+PrtScr,因为手动执行此操作似乎可以很好地获取内容。不过,这会破坏剪贴板内容。
- 尝试使用 DWM。从 Vista 和 Win7 开始,这也需要在 Win2000 和 XP 上工作,所以这可能不是要走的路。
任何输入将不胜感激!