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(
[in] HWND hwnd,
[in] HBITMAP hbmp,
[in, optional] POINT *pptClient,
[in] DWORD dwSITFlags
);
Parameter
[in] hwnd
Handel ke jendela. Jendela ini harus termasuk dalam proses panggilan.
[in] 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.
[in] 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 |