【问题标题】:Screenshot of window窗口截图
【发布时间】:2009-11-26 12:48:18
【问题描述】:

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

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

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

【问题讨论】:

标签: winapi screenshot aero aero-glass


【解决方案1】:

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

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

【讨论】:

  • WM_PRINT 通常不适用于最小化窗口,因为窗口在最小化时没有正常大小。
【解决方案2】:

我找到了用于任务栏预览的 API a.s.o.:

DWM Thumbnail Overview

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-19
    相关资源
    最近更新 更多