次の方法で共有


ID2D1Factory::CreateDCRenderTarget メソッド

Windows グラフィックス デバイス インターフェイス (GDI) デバイス コンテキストに描画するレンダー ターゲットを作成します。

構文

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

パラメーター

戻り値

HRESULT

メソッドが成功した場合は、S_OK が返されます。 それ以外の場合は、エラー コードが返されます。HRESULT.

解説

DC レンダー ターゲットを使用してレンダリングする前に、そのレンダー ターゲットの BindDC メソッドを使用して GDI DC と関連付ける必要があります。これは、異なる DC を使用するたびに、また描画する領域のサイズが変更されるたびに実行してください。

DC レンダー ターゲットで GDI を使用できるようにするには、レンダー ターゲットの DXGI 形式を DXGI_FORMAT_B8G8R8A8_UNORM、アルファ モードを D2D1_ALPHA_MODE_PREMULTIPLIED または D2D1_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_pD2DFactoryID2D1Factory へのポインター、m_pDCRTID2D1DCRenderTarget へのポインターです。

次のコード例では、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, Windows Vista SP2 および Windows Vista 用のプラットフォーム更新プログラム

サーバーの最小要件

Windows Server 2008 R2, Windows Server 2008 SP2 および Windows Server 2008 用のプラットフォーム更新プログラム

ヘッダー

D2d1.h

ライブラリ

D2d1.lib

DLL

D2d1.dll

参照

ID2D1Factory

Direct2D と GDI の相互運用性の概要

Direct2D GDI 相互運用機能のサンプル

サポートされているピクセル形式とアルファ モード