Freigeben über


ID2D1Factory::CreateDCRenderTarget-Methode (d2d1.h)

Erstellt ein Renderziel, das auf einen GDI-Gerätekontext (Windows Graphics Device Interface) verweist.

Syntax

HRESULT CreateDCRenderTarget(
  [in]  const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
  [out] ID2D1DCRenderTarget                 **dcRenderTarget
);

Parameter

[in] renderTargetProperties

Typ: const D2D1_RENDER_TARGET_PROPERTIES*

Renderingmodus, Pixelformat, Remotingoptionen, DPI-Informationen und die minimale DirectX-Unterstützung, die für das Hardwarerendering erforderlich ist. Damit das Renderziel des Gerätekontexts (Device Context, DC) mit GDI funktioniert, legen Sie das DXGI-Format auf DXGI_FORMAT_B8G8R8A8_UNORM und den Alphamodus auf D2D1_ALPHA_MODE_PREMULTIPLIED oder D2D1_ALPHA_MODE_IGNORE fest. Weitere Informationen zu Pixelformaten finden Sie unter Unterstützte Pixelformate und Alphamodi.

[out] dcRenderTarget

Typ: ID2D1DCRenderTarget**

Wenn diese Methode zurückgibt, enthält dcRenderTarget die Adresse des Zeigers auf den ID2D1DCRenderTarget , der von der -Methode erstellt wurde.

Rückgabewert

Typ: HRESULT

Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein HRESULT-Fehlercode zurückgegeben.

Hinweise

Bevor Sie mit einem DC-Renderziel rendern können, müssen Sie die BindDC-Methode des Renderziels verwenden, um es einem GDI-DC zuzuordnen. Führen Sie dies für jeden einzelnen DC und bei jeder Änderung der Größe des Bereichs aus, auf den Sie zeichnen möchten.

Damit das DC-Renderziel mit GDI funktioniert, legen Sie das DXGI-Format des Renderziels auf DXGI_FORMAT_B8G8R8A8_UNORM und den Alphamodus auf D2D1_ALPHA_MODE_PREMULTIPLIED oder D2D1_ALPHA_MODE_IGNORE fest.

Ihre Anwendung sollte Renderziele einmal erstellen und diese für die Lebensdauer der Anwendung oder bis die EndDraw-Methode des Renderziels den D2DERR_RECREATE_TARGET Fehler zurückgibt. Wenn dieser Fehler angezeigt wird, erstellen Sie das Renderziel (und alle erstellten Ressourcen) neu.

Beispiele

Mit dem folgenden Code wird ein DC-Renderziel erstellt.

// Create a DC render target.
D2D1_RENDER_TARGET_PROPERTIES props = D2D1::RenderTargetProperties(
    D2D1_RENDER_TARGET_TYPE_DEFAULT,
    D2D1::PixelFormat(
        DXGI_FORMAT_B8G8R8A8_UNORM,
        D2D1_ALPHA_MODE_IGNORE),
    0,
    0,
    D2D1_RENDER_TARGET_USAGE_NONE,
    D2D1_FEATURE_LEVEL_DEFAULT
    );

hr = m_pD2DFactory->CreateDCRenderTarget(&props, &m_pDCRT);

Im vorherigen Code ist m_pD2DFactory ein Zeiger auf eine ID2D1Factory, und m_pDCRT ist ein Zeiger auf ein ID2D1DCRenderTarget.

Im nächsten Codebeispiel wird ein DC an id2D1DCRenderTarget gebunden.

HRESULT DemoApp::OnRender(const PAINTSTRUCT &ps)
{

// Get the dimensions of the client drawing area.
GetClientRect(m_hwnd, &rc);

// Bind the DC to the DC render target.
hr = m_pDCRT->BindDC(ps.hdc, &rc);

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7, Windows Vista mit SP2 und Plattformupdate für Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2, Windows Server 2008 mit SP2 und Plattformupdate für Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile d2d1.h
Bibliothek D2d1.lib
DLL D2d1.dll

Weitere Informationen

Übersicht über die Direct2D- und GDI-Interoperation

ID2D1Factory

Unterstützte Pixelformate und Alpha-Modi