在MFC中使用Direct2D绘制几何图形
Drawing geometries with Direct2D in MFC
如何在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*,CD2DBrash*)':
无法将参数1从"ID2D1EllipseGeometry*"转换为'CD2D几何*'
我知道类型之间存在冲突,但从我所检查到的情况来看,没有一个MFC类继承自CD2DGeometry,CD2DGeometric是一个抽象类,pRenderTarget希望CD2DGeomethy*作为其第一个参数
我真的很困惑
非常感谢您的帮助。
ID2D1EllipseGeometry *m_pEllipseGeometry = nullptr;
ID2D1Factory *pFactory = nullptr;
m_pEllipseGeometry->GetFactory(&pFactory);
这将失败,因为m_pEllipseGeometry
是nullptr
。要使用MFC,请尝试以下示例:
pRenderTarget->Clear({ 1, 1, 1, 1 });
CRect rc(0, 0, 100, 100);
CD2DRectF d2d_rect(rc);
CD2DEllipse ellipse(&d2d_rect);
CD2DSolidColorBrush brush(pRenderTarget, { 0.5f, 0.5f, 0.5f, 1 });
pRenderTarget->FillEllipse(ellipse, &brush);
从头文件来看,MFC似乎根本不支持ID2D1EllipseGeometry
。要访问pFactory
,请使用以下示例:
if (SUCCEEDED(D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &pFactory))
{
...
pFactory->Release();
}
还有CCD_ 5。您可以使用CreateHwndRenderTarget
来获得ID2D1HwndRenderTarget
相关文章:
- QuadTree只在窗口的右上角绘制
- 绘制旋转的三角形
- flutter:即使shouldRepaint()返回true,自定义画家也不会重新绘制
- 如何在QT中的自定义视频小工具t上绘制矩形
- 如何在Visual Basic中使用矩形函数OpenGL绘制矩形
- 无法使用VAO和EBO(openGL)绘制多个对象
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- 绘制顺时针三角形,重新排序点
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- SFML 文本未绘制在窗口上
- 如何在快板的屏幕中显示子位图的绘制?
- 如何绘制自定义形状的元素?
- QPainter 将 QBrush 设置为 在 QT/C++ 中绘制文本
- 如何在 direct2d 中使用随其窗口重新缩放的效果绘制图像
- 使用 Direct2D 绘制 SVG 路径:无法绘制椭圆弧
- 在MFC中使用Direct2D绘制几何图形
- 无法从 Direct2D png 使用 DirectX9 绘制图像精灵
- 在 Direct2D 中绘制图像的一部分
- C++在Direct2D设备中绘制圆弧
- Direct2D/DirectDraw将只绘制文本与Arial字体