c++ - 如何填充贝塞尔曲线gdi c

标签 c++ mfc gdi+ bezier

我需要用颜色填充闭合贝塞尔曲线...任何人都可以帮助我改进此代码,因为它不起作用:

    COLORREF collor = RGB(100,50,150);
    CPen g(PS_INSIDEFRAME, 50, collor);
    pDC->SetBkColor(RGB(90, 100, 128));
    pDC->SelectObject(&g);
    CPoint Pt[10]=
{ 

    CPoint(400, 260),
    CPoint(480, 260),
    CPoint(500, 260),
    CPoint(470, 290),
    CPoint(450, 350),
    CPoint(470, 370),
    CPoint(430, 370),
    CPoint(420, 391),
    CPoint(405, 410),
    CPoint(400, 260),
};
    pDC->PolyBezier(Pt, 10);

谢谢!

最佳答案

您需要选择一个已创建为纯色且具有您想要填充的颜色的画笔。

CBrush brush;
brush.CreateSolidBrush(collor);
CBrush * pOldBrush = (CBrush *) pDC->SelectObject(&brush);
...
pDC->SelectObject(pOldBrush);

关于c++ - 如何填充贝塞尔曲线gdi c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13114908/

相关文章:

c++ - 技术报告和技术规范有什么区别?

C++ 析构函数调用了错误的对象?

c++ - Windows 有默认的单词词典吗?

c++ - 基于对话框的 MFC 应用程序的应用程序范围的周期性任务

c# - 如何用C#创建gif图像

c++ - 使用宏构造#include 指令的路径

c++ - 具有历史的搜索结构(持久性)

c++ - MFC中不断增加进度条

c# - gdi+ 中的 Lomography 效果

c++ - Gdiplus::Bitmap::Lock/UnlockBits 总是复制数据吗?