ID2D1Factory::CreateDCRenderTarget 方法 (d2d1.h)

创建绘制到 Windows 图形设备接口 (GDI) 设备上下文的呈现目标。

语法

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

参数

[in] renderTargetProperties

类型: const D2D1_RENDER_TARGET_PROPERTIES*

呈现模式、像素格式、远程处理选项、DPI 信息和硬件呈现所需的最低 DirectX 支持。 若要使设备上下文 (DC) 呈现目标使用 GDI,请将 DXGI 格式设置为 DXGI_FORMAT_B8G8R8A8_UNORM ,将 alpha 模式设置为 D2D1_ALPHA_MODE_PREMULTIPLIEDD2D1_ALPHA_MODE_IGNORE。 有关像素格式的详细信息,请参阅 支持的像素格式和 Alpha 模式

[out] dcRenderTarget

类型: ID2D1DCRenderTarget**

此方法返回时, dcRenderTarget 包含指向由 方法创建的 ID2D1DCRenderTarget 的指针的地址。

返回值

类型: HRESULT

如果该方法成功,则返回 S_OK。 否则,它将返回 HRESULT 错误代码。

注解

在使用 DC 呈现目标进行呈现之前,必须使用呈现目标的 BindDC 方法将其与 GDI DC 关联。 针对每个不同的 DC 以及每当要绘制的区域的大小发生更改时执行此操作。

若要使 DC 呈现目标能够与 GDI 配合使用,请将呈现目标的 DXGI 格式设置为 DXGI_FORMAT_B8G8R8A8_UNORM ,将 alpha 模式设置为 D2D1_ALPHA_MODE_PREMULTIPLIEDD2D1_ALPHA_MODE_IGNORE

应用程序应创建一次呈现目标,并在应用程序的生命周期内保留这些目标,直到呈现目标的 EndDraw 方法返回 D2DERR_RECREATE_TARGET 错误。 收到此错误时,请重新创建呈现目标 (以及它) 创建的任何资源。

示例

以下代码创建 DC 呈现目标。

// 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);

在前面的代码中, m_pD2DFactory 是指向 ID2D1Factory 的指针, m_pDCRT 是指向 ID2D1DCRenderTarget 的指针。

下一个代码示例将 DC 绑定到 ID2D1DCRenderTarget

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);

要求

要求
最低受支持的客户端 Windows 7、带 SP2 的 Windows Vista 和适用于 Windows Vista 的平台更新 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2、Windows Server 2008 SP2 和适用于 Windows Server 2008 的平台更新 [桌面应用 |UWP 应用]
目标平台 Windows
标头 d2d1.h
Library D2d1.lib
DLL D2d1.dll

另请参阅

Direct2D 和 GDI 互操作概述

ID2D1Factory

支持的像素格式和 Alpha 模式