次の方法で共有


InkD2DRenderer クラス

IInkD2DRenderer インターフェイスを実装します。

IInkD2DRenderer オブジェクトを使用すると、既定の InkCanvas コントロールではなく、ユニバーサル Windows アプリの指定された Direct2D デバイス コンテキストにインク ストロークをレンダリングできます。

メンバー

InkD2DRenderer クラスは、IUnknown インターフェイスから継承します。 InkD2DRenderer には、次の種類のメンバーもあります。

メソッド

InkD2DRenderer クラスには、これらのメソッドがあります。

メソッド 説明
描画 アプリの指定された Direct2D デバイス コンテキストにインク ストロークをレンダリングします。

Creation\Access Functions

クラス識別子 InkD2DRenderer を使用して CoCreateInstance を呼び出して、オブジェクトへの参照を取得します。

CoCreateInstance(__uuidof(InkD2DRenderer),
  nullptr,
  CLSCTX_INPROC_SERVER,
  IID_PPV_ARGS(&_spInkD2DRenderer));

複合手描き入力サンプルの "SceneComposer.cpp" ファイルのこのスニペットは、Direct2D デバイス コンテキストへのインク ストロークのコレクションのレンダリングを示しています。

_inkRenderer->Render(strokes, _deviceResources->GetD2DDeviceContext());
strokes->Clear();

複合手描き入力サンプルの "InkRenderer.cpp" ファイルのこのスニペットは、ストロークをレンダリングするために Draw メソッドを呼び出す Render メソッド (前のスニペットで呼び出されました) を示しています。

void InkRenderer::Render(
    Platform::Collections::Vector<
        Windows::UI::Input::Inking::InkStroke^>^ strokes,
        Microsoft::WRL::ComPtr<ID2D1DeviceContext> d2dContext)
{
    HRESULT hr = S_OK;
    if (_spInkD2DRenderer != nullptr)
    {
        if (strokes != nullptr && strokes->Size > 0)
        {
            // Cast the stroke collection into IUnknown to call Inkd2dRenderer
            ComPtr<IUnknown> spUnkStrokes = 
                reinterpret_cast<IUnknown*>(reinterpret_cast<__abi_IUnknown*>(strokes));
            hr = _spInkD2DRenderer->Draw(d2dContext.Get(), spUnkStrokes.Get(), false);
            if (FAILED(hr))
            {
                DX::ThrowIfFailed(hr);
            }
        }
    }
}

要件

要件
サポートされている最小のクライアント
Windows 10 [デスクトップ アプリのみ]
サポートされている最小のサーバー
サポートなし
Header
Inkrenderer.h
IDL
Inkrenderer.idl
IID
IID_IInkD2DRendererは 4044e60c-7b01-4671-a97c-04e0210a07a5 として定義されています

インク レンダラーペンとスタイラスの相互作用インク分析サンプル単純な手描き入力サンプル複雑な手描き入力サンプル