METODE IDCompositionDevice::CreateSurfaceFromHwnd (dcomp.h)
Membuat objek pembungkus yang mewakili rasterisasi jendela berlapis, dan yang dapat dikaitkan dengan visual untuk komposisi.
Sintaks
HRESULT CreateSurfaceFromHwnd(
HWND hwnd,
IUnknown **surface
);
Parameter
hwnd
Jenis: [in] HWND
Handel jendela berlapis untuk membuat pembungkus. Jendela berlapis dibuat dengan menentukan WS_EX_LAYERED saat membuat jendela dengan fungsi CreateWindowEx atau dengan mengatur WS_EX_LAYERED melalui SetWindowLong setelah jendela dibuat.
surface
Jenis: [out] IUnknown**
Objek permukaan komposisi baru. Parameter ini tidak boleh NULL.
Mengembalikan nilai
Jenis: HRESULT
Jika fungsi berhasil, fungsi akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan. Lihat Kode Kesalahan DirectComposition untuk daftar kode kesalahan.
Keterangan
Anda dapat menggunakan penunjuk permukaan dalam panggilan ke metode IDCompositionVisual::SetContent untuk mengatur konten satu atau beberapa visual. Setelah mengatur konten, visual menyusun konten jendela berlapis yang ditentukan selama jendela dilapisi. Jika jendela tidak ditata, konten jendela menghilang dari output pohon komposisi. Jika jendela kemudian dilapisi ulang, konten jendela muncul kembali selama masih terkait dengan visual.
Jika jendela diubah ukurannya, visual yang terpengaruh akan disusur ulang.
Isi jendela tidak di-cache di luar masa pakai jendela. Artinya, jika jendela dihancurkan, visual yang terpengaruh berhenti menyusun jendela.
Jika jendela dipindahkan dari layar atau diubah ukurannya menjadi nol, sistem berhenti menyusun konten visual. Anda harus menggunakan fungsi DwmSetWindowAttribute dengan bendera DWMWA_CLOAK untuk "menutup" jendela anak berlapis ketika Anda perlu menyembunyikan jendela asli sambil memungkinkan sistem untuk terus menyusun konten visual. Untuk informasi selengkapnya, lihat Cara menganimasikan bitmap jendela anak berlapis dan sampel jendela anak berlapis DirectComposition.
Contoh
Cuplikan kode berikut membuat objek pembungkus yang mewakili rasterisasi jendela berlapis.
HRESULT hr = S_OK;
IDCompositionVisual *pVisual = nullptr;
IUnknown *pSurface = nullptr;
// Create a visual. g_pDevice is the IDCompositionDevice pointer of a
// device object created earlier.
hr = g_pDevice->CreateVisual(&pVisual);
if (SUCCEEDED(hr))
{
// Create a surface that contains the image of the layered child
// window identified by the g_hwndChild window handle (HWND).
hr = g_pDevice->CreateSurfaceFromHwnd(g_hwndChild, &pSurface);
}
if (SUCCEEDED(hr))
{
// Set the content of the Control child visual.
hr = pVisual->SetContent(pSurface);
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 8 [khusus aplikasi desktop] |
Server minimum yang didukung | Windows Server 2012 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | dcomp.h |
Pustaka | Dcomp.lib |
DLL | Dcomp.dll |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk