DwmRegisterThumbnail function
在目标窗口和源窗口之间创建桌面窗口管理器(DWM)缩略图关系。
DWMAPI DwmRegisterThumbnail(
HWND hwndDestination,
HWND hwndSource,
PHTHUMBNAIL phThumbnailId
);
参数
hwndDestination
将使用DWM缩略图的窗口的句柄。目标窗口句柄为非顶级窗口类型,将导致返回值E_INVALIDARG。
hwndSource
要用作缩略图源的窗口的句柄。源窗口句柄为非顶级窗口类型,将导致返回值E_INVALIDARG。
phThumbnailId
指向句柄的指针,当此函数成功返回时,该句柄表示DWM缩略图的注册。
返回值
如果此函数成功,则返回S_OK. 否则,它返回一个HRESULT错误代码。
DwmUnregisterThumbnail function
删除由创建的桌面窗口管理器(DWM)缩略图关系DwmRegisterThumbnail功能
DWMAPI DwmUnregisterThumbnail(
HTHUMBNAIL hThumbnailId
);
参数
hThumbnailId
要删除的缩略图关系的句柄。NNULL或不存在的句柄将导致返回值E_INVALIDARG。
返回值
如果此函数成功,则返回S_OK. 否则,它返回一个HRESULT错误代码。
用法:
#include <dwmapi.h>
#pragma comment(lib,"Dwmapi.lib")
HRESULT RegisterThumbWindow(HWND hWndSrc, HWND hWndDst)
{
HRESULT hr = S_OK;
HTHUMBNAIL thumbnail = NULL;
hr = DwmRegisterThumbnail(hWndDst, hWndSrc, &thumbnail);
if (SUCCEEDED(hr))
{
RECT dest;
::GetClientRect(hWndDst, &dest);
DWM_THUMBNAIL_PROPERTIES dskThumbProps;
dskThumbProps.dwFlags = DWM_TNP_RECTDESTINATION | DWM_TNP_VISIBLE | DWM_TNP_SOURCECLIENTAREAONLY;
dskThumbProps.fSourceClientAreaOnly = FALSE;
dskThumbProps.fVisible = TRUE;
dskThumbProps.opacity = (255 * 70)/100;
dskThumbProps.rcDestination = dest;
hr = DwmUpdateThumbnailProperties(thumbnail,&dskThumbProps);
if (SUCCEEDED(hr))
{
// ...
}
}
return hr;
}