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压缩)
更多精彩
赞助商链接