Поделиться через


Метод 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 , а для альфа-режима — D2D1_ALPHA_MODE_PREMULTIPLIED или D2D1_ALPHA_MODE_IGNORE. Дополнительные сведения о форматах пикселей см. в разделе Поддерживаемые форматы пикселей и альфа-режимы.

[out] dcRenderTarget

Тип: ID2D1DCRenderTarget**

При возврате этого метода dcRenderTarget содержит адрес указателя на ID2D1DCRenderTarget , созданный методом .

Возвращаемое значение

Тип: HRESULT

Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Перед отрисовкой с целевым объектом отрисовки контроллера домена необходимо использовать метод BindDC целевого объекта отрисовки, чтобы связать его с контроллером домена GDI. Сделайте это для каждого отдельного контроллера домена и при изменении размера области, в которой вы хотите нарисовать.

Чтобы целевой объект отрисовки контроллера домена мог работать с GDI, задайте для целевого объекта отрисовки формат DXGI DXGI_FORMAT_B8G8R8A8_UNORM , а альфа-режим — D2D1_ALPHA_MODE_PREMULTIPLIED или D2D1_ALPHA_MODE_IGNORE.

Приложение должно создавать целевые объекты отрисовки один раз и удерживать их на протяжении всего времени существования приложения или до тех пор, пока метод EndDraw целевого объекта отрисовки не вернет ошибку D2DERR_RECREATE_TARGET . При появлении этой ошибки повторно создайте целевой объект отрисовки (и все созданные им ресурсы).

Примеры

В следующем коде создается целевой объект отрисовки контроллера домена.

// 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.

В следующем примере кода контроллер домена привязывается к 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, Windows Vista с пакетом обновления 2 (SP2) и обновлением платформы для Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2) и Обновление платформы для Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header d2d1.h
Библиотека D2d1.lib
DLL D2d1.dll

См. также раздел

Общие сведения о взаимодействии Direct2D и GDI

ID2D1Factory

Поддерживаемые форматы пикселей и режимы альфа-канала