Fungsi DwmSetIconicLivePreviewBitmap (dwmapi.h)

Mengatur bitmap statis dan ikonik untuk menampilkan pratinjau langsung (juga dikenal sebagai pratinjau Intip) dari jendela atau tab. Taskbar dapat menggunakan bitmap ini untuk memperlihatkan pratinjau jendela atau tab berukuran penuh.

Sintaks

HRESULT DwmSetIconicLivePreviewBitmap(
                 HWND    hwnd,
                 HBITMAP hbmp,
  [in, optional] POINT   *pptClient,
                 DWORD   dwSITFlags
);

Parameter

hwnd

Handel ke jendela. Jendela ini harus termasuk dalam proses panggilan.

hbmp

Handel ke bitmap untuk mewakili jendela yang ditentukan hwnd .

[in, optional] pptClient

Offset wilayah klien jendela tab (area konten di dalam bingkai jendela klien) dari bingkai jendela host. Offset ini memungkinkan konten jendela tab digambar dengan benar dalam pratinjau langsung saat digambar tanpa bingkainya.

dwSITFlags

Opsi tampilan untuk pratinjau langsung. Parameter ini bisa 0 atau nilai berikut.

DWM_SIT_DISPLAYFRAME (0x00000001)

0x00000001. Menampilkan bingkai di sekitar bitmap yang disediakan.

Nilai kembali

Mengembalikan S_OK jika fungsi berhasil, atau nilai kesalahan sebaliknya. Perhatikan bahwa karena bitmap ini tidak di-cache, jika jendela tidak dipratinjau ketika aplikasi memanggil fungsi ini, fungsi mengembalikan kode keberhasilan tetapi bitmap dibuang dan tidak digunakan.

Keterangan

Pratinjau langsung (juga dikenal sebagai pratinjau Intip) jendela muncul saat pengguna memindahkan penunjuk mouse ke atas gambar mini jendela di taskbar atau memberikan fokus gambar mini di jendela ALT+TAB. Tampilan ini adalah tampilan jendela berukuran penuh dan dapat menjadi rekam jepret atau representasi ikonik.

Jendela biasanya memanggil fungsi DwmSetIconicLivePreviewBitmap sebagai respons terhadap pesan WM_DWMSENDICONICLIVEPREVIEWBITMAP . Bitmap yang dikembalikan tidak boleh lebih besar dari area klien jendela atau bingkai dan harus memiliki kedalaman warna 32-bit.

Desktop Window Manager (DWM) menggunakan salinan bitmap, tetapi pemanggil mempertahankan kepemilikan bitmap asli dan bertanggung jawab untuk membebaskan sumber daya yang digunakannya ketika tidak lagi diperlukan. DWM tidak menyimpan salinan bitmap ketika DWM berhenti menampilkan representasi pratinjau langsung.

Contoh

Untuk mengatur bitmap statis ikonik yang akan digunakan sebagai pratinjau langsung untuk jendela aplikasi, aplikasi memanggil fungsi DwmSetIconicLivePreviewBitmap . Untuk mengatur bitmap ini, aplikasi harus memanggil DwmSetWindowAttribute untuk mengatur atribut jendela untuk penyajian non-klien ke DWMWA_FORCE_ICONIC_REPRESENTATION dan DWMWA_HAS_ICONIC_BITMAP, seperti yang ditunjukkan dalam kode berikut.

            // Set DWM window attributes to provide the iconic bitmap, and 
            // to always render the thumbnail using the iconic bitmap.
            BOOL fForceIconic = TRUE;
            BOOL fHasIconicBitmap = TRUE;

            DwmSetWindowAttribute(
                hwnd,
                DWMWA_FORCE_ICONIC_REPRESENTATION,
                &fForceIconic,
                sizeof(fForceIconic));

            DwmSetWindowAttribute(
                hwnd,
                DWMWA_HAS_ICONIC_BITMAP,
                &fHasIconicBitmap,
                sizeof(fHasIconicBitmap));

Kemudian, aplikasi memanggil DwmSetIconicLivePreviewBitmap untuk merespons pesan WM_DWMSENDICONICLIVEPREVIEWBITMAP , seperti yang ditunjukkan dalam kode berikut.

        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;

Untuk contoh lengkapnya, lihat Kustomisasi Gambar Mini Ikonik dan sampel Bitmap Pratinjau Langsung .

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 7 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 R2 [hanya aplikasi desktop]
Target Platform Windows
Header dwmapi.h
Pustaka Dwmapi.lib
DLL Dwmapi.dll; Uxtheme.dll