void CAView::OnDraw(CDC* pDC)
{
CADoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CRgn rgn;
POINT* pp; //定义一个点结构指针
pp=new POINT[3]; //给结构指针分配Number个顶点
pp[0].x=50;pp[0].y=50;
pp[1].x=50;pp[1].y=100;
pp[2].x=100;pp[2].y=50;
int i,xx,yy;
xx=60;yy=60;
if(rgn.CreatePolygonRgn(pp,3,0)==0)
{
AfxMessageBox("严重警告:多边形区域建立不成功!");
return;
}
i=(rgn.PtInRegion(xx,yy)!=0);//如果在区域内i=1,否则i=0
rgn.DeleteObject(); //删除定义的rgn对象}
在执行到rgn.CreatePolygonRgn时出错,不知我的程序错在哪,请指正,谢谢!

解决方案 »

  1.   

    if(rgn.CreatePolygonRgn(pp,3,WINDING)==0)nMode
    Specifies the filling mode for the region. This parameter may be either ALTERNATE or WINDING.即最后一个参数不是WINDING就是ALTERNATE
      

  2.   

    时不时改成rgn.CreatePolygonRgn(pp,3,WINDING)就可以了?我也查过MSDN的,但是不知道ALTERNATE和WINDING分别代表什么意思,请你解释一下,谢谢!
      

  3.   

    呵呵,我在问『风间苍月』呢。请你帮我解释一下ALTERNATE和WINDING分别代表什么意思,谢谢!
      

  4.   

    int fnPolyFillMode
    只能为 1 或 2
      

  5.   

    看看window编程指南第五版里面讲的很清楚了