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 [仅限桌面应用]
标头
Dwmapi.h

另请参阅

WM_DWMSENDICONICTHUMBNAIL

DwmInvalidateIconicBitmaps