0

我正在尝试截取所有打开的窗口,以及最小化的窗口。目前我正在使用此代码: http: //www.developerfusion.com/code/4630/capture-a-screen-shot/

但它不适用于最小化的窗口以及自 Vista 以来出现 Glass 效果的区域,例如资源管理器标题栏是黑色的。谁能帮我吗?

我的目标是创建类似于 Flip 3D 的东西;如果有人也知道如何创建实时预览,那就太好了。

4

2 回答 2

1

对于玻璃效果区域:我认为它不起作用,因为这些区域可能是用一些奇怪的 DirectX 方法而不是普通的 GDI 绘制的。

对于最小化窗口问题:如果一个窗口被最小化,它的 DC 不会被绘制(从概念上讲,它甚至没有存在的理由);您应该尝试向此类窗口发送 WM_PRINT 消息,要求他们在您将提供给他们的 DC 上绘制自己。这种方法的问题是并非所有的窗口都能正确处理 WM_PRINT。

于 2009-11-26T16:29:44.247 回答
1

我还找到了用于任务栏预览的 API:

DWM 缩略图概述

非常棒,它甚至可以让你进行实时预览!

于 2011-01-18T08:22:48.050 回答