WM_DWMSENDICONICLIVEPREVIEWBITMAP消息
指示窗口提供静态位图,用作 实时预览 (也称为该窗口的 速览预览) 。
参数
-
wParam
-
未使用。
-
lParam
-
未使用。
返回值
如果应用程序处理此消息,则它应返回零。
备注
当用户将鼠标指针移到任务栏的窗口缩略图上或在 ALT+TAB 窗口中提供缩略图焦点时,将显示 一个实时预览 (也称为 窗口的速览预览) 。 此视图是窗口的全尺寸预览,可以是实时快照或图标表示形式。
桌面窗口管理器 (DWM) 将此消息发送到窗口(如果以下所有情况都成立):
- 已在窗口上调用实时预览。
- DWMWA_HAS_ICONIC_BITMAP 属性在窗口上设置。
- 图标表示形式是此窗口唯一存在的表示形式。
接收此消息的窗口应通过生成全比例位图做出响应。 然后,该窗口调用 DwmSetIconicLivePreviewBitmap 函数来设置实时预览。 如果窗口未在给定的时间内设置位图,DWM 会为窗口使用其自己的默认图标表示形式。
示例
以下示例演示了对 WM_DWMSENDICONICLIVEPREVIEWBITMAP消息的 响应。 该示例调用 DwmSetIconicLivePreviewBitmap 函数,该函数具有与设备无关的自定义位图的句柄,用作窗口的表示形式。
case WM_DWMSENDICONICLIVEPREVIEWBITMAP:
{
// This window is being asked to provide a bitmap to show in Peek preview.
// This indicates the thumbnail in the taskbar is being previewed.
RECT rectWindow = {0, 0, 0, 0};
if (GetClientRect(hwnd, &rectWindow))
{
nWidth = rectWindow.right - rectWindow.left;
nHeight = rectWindow.bottom - rectWindow.top;
}
hbm = CreateDIB(nWidth, nHeight);
if (hbm)
{
hr = DwmSetIconicLivePreviewBitmap(hwnd, hbm, NULL, DWM_SIT_DISPLAYFRAME);
DeleteObject(hbm);
}
}
break;
有关完整代码,请参阅 自定义图标缩略图和实时预览位图 示例。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 7 [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2008 R2 [仅限桌面应用] |
标头 |
|