CDC* pDC=GetDC();
POINT polygon[3]={(50,90),(55,95),(55,100)};
  CBrush br2,*poldbrush1;
  br2.CreateSolidBrush(RGB(128,128,128));
  poldbrush1=pDC->SelectObject(&br2);
      pDC->Polygon(polygon,3);
  pDC->Rectangle(50,60,90,70);
      pDC->SelectObject(poldbrush1);
  br2.DeleteObject();
按这段代码在dialog上想画个三角形,但是编译完以后,显示的三角形的位置只有一个顶点位置对,其他俩个老是跑到dialog的最左上角,把三角形的大小减小还是那样,不知道是怎么回事,求大家给看看,或是我的三角形的代码什么地方不对.

解决方案 »

  1.   

    //try it:CDC* pDC=GetDC();
    POINT polygon[4]={(50,90),(55,95),(55,100),(50,90)};
      CBrush br2,*poldbrush1;
      br2.CreateSolidBrush(RGB(128,128,128));
      poldbrush1=pDC->SelectObject(&br2);
          pDC->Polygon(polygon,4);
    //   pDC->Rectangle(50,60,90,70);
          pDC->SelectObject(poldbrush1);
      br2.DeleteObject();
      

  2.   

    这回对了俩个顶点,但是还有一个顶点跑到了dialog的最左上角,不知道是怎么回事
      

  3.   

    初始化的问题,你把polygon的各个点分别赋值,比如:
    polygon[0].x = 50;
    polygon[0].y = 90;
    或者用CPoint:
    CPoint polygon[3]={CPoint(50,90),CPoint(55,95),CPoint(55,100)};
    来初始化。