VC++6.0 MFC窗口中移动的圆

来源:互联网 发布:七上生物行知天下答案 编辑:程序博客网 时间:2024/05/21 18:59

这个例子我们创建一个MFC单文档视图窗口,在窗口屏幕上绘制一个移动的填充色为蓝色的圆。

步骤:

1、利用VC++6.0的AppWizard创建一个单文档视图,命名为MovingBall

2、在ClassWizard中找到CMovingBallView类,并双击其中的OnDraw(CDC *pDC)函数,编辑该函数:

 //在该函数末尾添加如下:

SetMapMode(pDC->m_hDC,MM_HIENGLISH);               //设置映射模式
 pDC->SetViewportOrg(300,200);                     //设置坐标原点(应当是设备坐标)
 pDC->SetROP2(R2_NOTXORPEN);                       //设置绘图方式为异或操作,即像素是由画笔和屏幕颜色的异或组成

 CBrush brushBlue(RGB(0,0,255));
 CBrush * poldBrush=pDC->SelectObject(&brushBlue);

 CPen penRed;
 penRed.CreatePen(PS_SOLID,5,RGB(255,0,0));
 CPen * poldPen=pDC->SelectObject(&penRed);

 CRect oldRect(-750,200,-350,-200);
 CRect newRect(oldRect);                           //定义两个矩形并初始化
 pDC->Ellipse(oldRect);                            //绘制圆

 //利用异或操作来绘制移动的圆
 while(1)
 {
  if(newRect.left>700)
  {
   break;
  }
  else
  {
   newRect.left+=10;
   newRect.right+=10;
  }
  //删除旧圆绘制新圆并更新圆的坐标
  pDC->Ellipse(oldRect);
  pDC->Ellipse(newRect);
  oldRect=newRect;
  Sleep(50);                                    //等待100ms
 }

 pDC->SelectObject(poldBrush);
 pDC->SelectObject(poldPen);

 

运行情况:

 

 

0 0
原创粉丝点击