MFC实现橡皮筋画线(附带源码)

前几天一个学妹问我一个关于她们实习的问题,其中的一个是说实现橡皮筋画线,当时给她讲了,感觉讲的不是蛮清楚,这里就以一个简单实例实现橡皮筋画线。所用环境:vc6,MFC。 实现这个其实并不是很难,关键在于两点——用户交互和橡皮筋技术 下面是实现过程。
int isPress=0; CPoint start; CPoint end;
将上述代码放在***View.cpp里面的开头部分(只要能在***View.cpp里面起控制全局的作用就行,例如放在#endif后面) 在***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请看这里 效果图:
附件下载:点击这里下载