MFCアプリケーションでpRenderTargetと互換性のあるジオメトリオブジェクトを作成するにはどうすればよいですか?MFCでDirect2Dを使用した図形の描画
LRESULT CWorkSpaceBar::OnDrawDirect2D(WPARAM wParam, LPARAM lParam)
{
CHwndRenderTarget* pRenderTarget = (CHwndRenderTarget*)lParam;
pRenderTarget->FillGeometry(//<<-- here I need a geometry, i.e. an Ellipse Geometry
}
私が試した:それは私が持っている、ある
エラーC2664「のボイドCRenderTarget :: FillGeometry(:
ID2D1EllipseGeometry *m_pEllipseGeometry = nullptr; ID2D1Factory *pFactory = nullptr; m_pEllipseGeometry->GetFactory(&pFactory); pFactory->CreateEllipseGeometry(ellipse, &m_pEllipseGeometry); pRenderTarget->FillGeometry(m_pEllipseGeometry, m_pBlackBrush);
ああを、私はというエラーを取得しています'ID2D1EllipseGeometry *'から引数1を に変換できません。 「CD2DGeometry *」
CD2DGeometryは抽象クラスであり、pRenderTargetはCD2DGeometryを期待し、私はタイプとの競合があることを理解し、私がチェックするために管理してきたものからCD2DGeometryから継承MFCクラスがありません*を最初の引数として使用します。
私は本当に混乱しています。
本当にありがとうございます。
セミラニご回答いただきありがとうございます、残念ながらほとんど誤解がありました。私は楕円を埋める必要はありません、私はID2D1EllipseGeometryを別の動物であるCD2DEllipseに塗りつぶしたいと思います。あなたがそれを解決する方法を知っているなら、それは本当に素晴らしいでしょう。 –
MFCに 'ID2D1EllipseGeometry'のクラスがありません' pFactory'と 'ID2D1HwndRenderTarget'を使って、メインAPIへのアクセスを得ることができます –