【发布时间】:2016-04-17 09:16:56
【问题描述】:
如何在 MFC 应用程序中创建与 pRenderTarget 兼容的几何对象?也就是说,我有:
LRESULT CWorkSpaceBar::OnDrawDirect2D(WPARAM wParam, LPARAM lParam)
{
CHwndRenderTarget* pRenderTarget = (CHwndRenderTarget*)lParam;
pRenderTarget->FillGeometry(//<<-- here I need a geometry, i.e. an Ellipse Geometry
}
我试过了:
ID2D1EllipseGeometry *m_pEllipseGeometry = nullptr;
ID2D1Factory *pFactory = nullptr;
m_pEllipseGeometry->GetFactory(&pFactory);
pFactory->CreateEllipseGeometry(ellipse, &m_pEllipseGeometry);
pRenderTarget->FillGeometry(m_pEllipseGeometry, m_pBlackBrush);
唉,我收到一条错误消息:
错误 C2664 'void CRenderTarget::FillGeometry(CD2DGeometry *,CD2DBrush *,CD2DBrush *)':
无法将参数 1 从 'ID2D1EllipseGeometry *' 转换为 'CD2DGeometry *'
我知道存在类型冲突,但据我所知,没有从 CD2DGeometry 继承的 MFC 类,CD2DGeometry 是一个抽象类,pRenderTarget 期望 CD2DGeometry* 作为它的第一个参数。
我真的很困惑。
非常感谢任何帮助。
【问题讨论】: