各位高手:        我已用MoveTo,LineTo 方法画出了五角星,请问怎样填充五角星内的区域为红色?谢谢!

解决方案 »

  1.   

    用CRgn:
    CRgn::CreatePolygonRgn然后用CDC::FillRgnBOOL FillRgn(
       CRgn* pRgn,
       CBrush* pBrush 
    );
      

  2.   

    你可以用画多边行的函数画五角星,可以查CDC的成员函数,然后用CDC的成员函数FillFlood()填充。
      

  3.   

    MSDN中没有FillFlood()函数呀?请各位帮帮忙!!!
      

  4.   

    先设计算法计算五个外顶点五个内顶点。
    比如是(x1,y1),(x2,y2),……,(x10,y10)
    用API <windows.h>的POINT结构存储这10个点
    static POINT apt[]={x1,y1,x2,y2,……x10,y10};
    然后设置填充的画刷:
    HBRUSH hbrush;
    hbrush=Get……(hdc,……);      //不好意思,忘了函数名和参数了
    SelectObject(hdc,hbrush);
    然后设置填充方式为WINDING。     //函数又忘了,好象是Set……什么。
    然后用API函数Polygon(该函数会填充内部区域)
    Polygon(hdc,apt,10);
      

  5.   

    直接画多边形, 画前选入你的颜色画刷. 如果不要线框,就用NULL的笔