MFC实现橡皮筋画线(附带源码)
前几天一个学妹问我一个关于她们实习的问题,其中的一个是说实现橡皮筋画线,当时给她讲了,感觉讲的不是蛮清楚,这里就以一个简单实例实现橡皮筋画线。所用环境:vc6,MFC。
实现这个其实并不是很难,关键在于两点——用户交互和橡皮筋技术
下面是实现过程。
int isPress=0;将上述代码放在View.cpp里面的开头部分(只要能在View.cpp里面起控制全局的作用就行,例如放在#endif后面)CPoint start;
CPoint end;
在***View.cpp里面用添加类向导将单击鼠标左键,鼠标移动和放开鼠标左键映射为相应的函数。并且添加以下代码
void CXiangpijinView::OnLButtonDown(UINT nFlags, CPoint point)运行一下,就可以实现基本的橡皮筋画直线了,什么?不能重绘,这个自己想办法~{
// TODO: Add your message handler code here and/or call default
isPress=1;
start=point;
end=start;
CView::OnLButtonDown(nFlags, point);
}
void CXiangpijinView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CDC *pDC=this->GetWindowDC();
if (isPress)
{
pDC->SetROP2(R2_NOT);
pDC->MoveTo(start);
pDC->LineTo(end);
pDC->MoveTo(start);
pDC->LineTo(point);
end=point;
}
CView::OnMouseMove(nFlags, point);
}
void CXiangpijinView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
isPress=0;
CView::OnLButtonUp(nFlags, point);
}
还有什么问题可以留言,或者点击我博客右边的q我一下!还有关于SetROP2请看这里
效果图:
附件下载:点击这里下载