WEB开发网
开发学院软件开发VC VC精华教程:MFC入门系列(六) 阅读

VC精华教程:MFC入门系列(六)

 2007-03-22 21:31:18 来源:WEB开发网   
核心提示: 我们的目标先是画一条线出来,我们可以想象一下,VC精华教程:MFC入门系列(六)(3),我们先用鼠标点一下,就有一个起始点,其中有类CPaintDC, CPaintDC d(this); //将坐标移动到起始点 d.MoveTo(OldPoint); //绘制一条线 d.LineTo(Ne

我们的目标先是画一条线出来,我们可以想象一下,我们先用鼠标点一下,就有一个起始点,鼠标不放开,拖动鼠标,会有一条线跟随,再点一下有了终止点,就可以画一条线了。我们要做的工作就是将上面的内容翻译成VC代码。

我们要有两个点,还要一个重绘区域;所以我们再类sample中添加成员变量:

 CPoint NewPoint;//一个终止点
  CPoint OldPoint;//一个起始点
  RECT r;//需要刷新的矩形区域

鼠标点下时,获得起始点:

void OnLButtonDown(UINT i,CPoint p)//添加的消息处理函数
  {
   OldPoint=p;// 获得起始点
  }

鼠标起来时,得到终止点,并绘一条线

void OnLButtonUp(UINT i,CPoint p)
  {
   NewPoint=p;// 获得终止点
   //由起始点和终止点得到一个矩形
   r.left=OldPoint.x;
   r.top=OldPoint.y;
   r.right=NewPoint.x;
   r.bottom=NewPoint.y;
   //调用窗体的设置无效区域方法
   CWnd::InvalidateRect(&r,TRUE);
  }

有了无效区域,我们再来绘图了:

void OnPaint()
  {
     //设备上下文DC的创建,MFC将DC包装成了几个类,其中有类CPaintDC,
    CPaintDC d(this);
    //将坐标移动到起始点
    d.MoveTo(OldPoint);
    //绘制一条线
  d.LineTo(NewPoint);
  }

这个时候,我们就可以试一下,我们自己做的画线程序了。

源文件下载:点击这里下载(28KB, Winzip压缩)

上一页  1 2 3 

Tags:VC 精华 教程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接