相信大家第一次在VC中写画图程序的时候,总是会碰到一些问题把,尤其是画直线的时候,总是会出现一些扇形,而不是我们想要的具有动感的直线,我经过反复实践,终于找到了解决的办法,就是每次画新的直线时,都利用橡皮筋技术擦除上次画的直线,这样就不会有残留的背景了
下面开始把
新建一个单文档应用程序DRAW,在视类中添加三个成员变量,CPoint m_pOrigin,CPoint m_pENd,BOOl m_bFlags.
添加视类中鼠标按下,移动,弹起的消息响应函数
分别如下:
void CDrawTestView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_pOrigin = m_pEnd = point;
m_bFlag = true;
CView::OnLButtonDown(nFlags, point);
}
void CDrawTestView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CDC *dc = GetDC();
if(m_bFlag)
{dc->SetROP2(R2_NOT);
dc->MoveTo(m_pOrigin);
dc->LineTo(m_pEnd);
m_pEnd = point;
dc->MoveTo(m_pOrigin);
dc->LineTo(m_pEnd);
}
CView::OnMouseMove(nFlags, point);
}
void CDrawTestView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_bFlag = false;
CView::OnLButtonUp(nFlags, point);
}