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

IDCompositionDevice

IDCompositionDevice::CreateSurface

IDCompositionDevice::CreateSurfaceFromHandle