函数参考


_WinAPI_DwmUpdateThumbnailProperties

指定桌面窗口管理器(DWM)缩略图属性.

#Include <WinAPIEx.au3>
_WinAPI_DwmUpdateThumbnailProperties ( $hThumbnail [, $fVisible [, $fClientAreaOnly [, $iOpacity [, $tRectDest [, $tRectSrc]]]]] )

参数

$hThumbnail 检索源窗口大小的缩略图句柄.
$fVisible [可选参数] 指定使缩图是否可见.有效值:
1 - 可见.
0 - 不可见.
$fClientAreaOnly [可选参数] 指定使用缩略图源客户区域或整个窗口.有效值:
1 - 使用源客户区.
0 - 使用整个窗口.
$iOpacity [可选参数] 缩略图的不透明度.0 为完全透明,255 为完全不透明.
$tRectDest [可选参数] $tagRECT 结构.包含将会呈现缩略图的目标窗口矩形
 默认矩形等于 _WinAPI_DwmQueryThumbnailSourceSize() 函数返回的源 DWM 缩略图的大小.
$tRectSrc [可选参数] $tagRECT 结构.包含使用缩略图的源窗口矩形区域.
 默认整个窗口被用作缩略图.

返回值

成功: 返回 1.
失败: 返回 0,设置 @error 标志为非 0 值, @extended 标志可能包含一个系统错误代码.

注意/说明

_WinAPI_DwmRegisterThumbnail() 创建的缩略图关系,在函数调用前,不会被渲染到目标窗口.
 后续调用将根据属性更新缩略图.
 本函数需要 Windows Vista 或更高版本系统.

相关

详情参考

在MSDN中搜索


示例/演示


#Include <WinAPIEx.au3>

Opt('MustDeclareVars', 1)

If Not _WinAPI_DwmIsCompositionEnabled() Then
    MsgBox(16, 'Error', 'Require Windows Vista or later with enabled Aero theme.')
    Exit
EndIf

Global $hWnd, $hForm, $hThumbnail, $tSIZE, $tDestRect, $tSrcRect, $Width, $Height

Run(@SystemDir & '\calc.exe')
$hWnd = WinWaitActive('Calculator', '', 3)
If Not $hWnd Then
    Exit
EndIf

; 创建 GUI
$hForm = GUICreate('MyGUI', 400, 400)

GUISetBkColor(0)

; 给整个窗口创建 "玻璃片" 效果. 无论 DWM (桌面窗口管理器) 组件是否切换您必须调用此函数.
_WinAPI_DwmExtendFrameIntoClientArea($hForm)

; 创建桌面窗口管理器缩略图关系 (2:1)
$hThumbnail = _WinAPI_DwmRegisterThumbnail($hForm, $hWnd)
$tSIZE = _WinAPI_DwmQueryThumbnailSourceSize($hThumbnail)
$Width = DllStructGetData($tSIZE, 1)
$Height = DllStructGetData($tSIZE, 2)
$tDestRect = _WinAPI_CreateRectEx((400 - $Width / 2) / 2, (400 - $Height / 2) / 2, $Width / 2, $Height / 2)
$tSrcRect = _WinAPI_CreateRectEx(-20, -20, $Width + 40, $Height + 40)
_WinAPI_DwmUpdateThumbnailProperties($hThumbnail, 1, 0, 255, $tDestRect, $tSrcRect)

GUISetState()

Do
Until GUIGetMsg() = -3