指定桌面窗口管理器(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 标志可能包含一个系统错误代码. |
在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