2012-02-10 31 views
0

塗りつぶしが必要なポリゴン(4点とlineto()、ポリゴン()は画面上にポリゴンを移動するとマークが残るため動作しません)があります。 誰でも助けてくれますか?ここでGDIでポリゴンを塗りつぶし

あなたが再描画するときに背景をクリアしないので、移動したときにポリゴンが「マークを離れる」理由がある

void CClock::DrawHand (CDC* pDC, int nLength, int nScale, int nDegrees, COLORREF clrColor) 
    { 
     CPoint point[4]; 
     double nRadians = (double) nDegrees * 0.017453292; 

     point[0].x = (int) (nLength * sin (nRadians)); 
     point[0].y = (int) (nLength * cos (nRadians)); 

     point[2].x = -point[0].x/nScale; 
     point[2].y = -point[0].y/nScale; 

     point[1].x = -point[2].y; 
     point[1].y = point[2].x; 

     point[3].x = -point[1].x; 
     point[3].y = -point[1].y; 

     CPen pen (PS_SOLID, 0, clrColor); 
     CPen* pOldPen = pDC->SelectObject (&pen); 

      pDC->MoveTo(point[0]); 
     pDC->LineTo(point[1]); 
     pDC->LineTo(point[2]); 
     pDC->LineTo(point[3]); 
     pDC->LineTo(point[0]); 

      pDC->SelectObject (pOldPen); 
    } 
+0

これまでに持っていたコードを表示できますか? – alf

+0

@alfonso私は今質問にそれを含めました。 –

+0

これを入手しました。私はPolygon()を作った。以前はこれをしましたが、ブラシに誤ったパラメータを与えました。とにかくありがとう。 –

答えて

0

をDrawHand私の関数です。まず、背景色で四角形を描きます。

関連する問題