MFC图形的使用:如何在网格中用鼠标绘图

 我来答
水晶扇
2012-07-23 · TA获得超过1536个赞
知道大有可为答主
回答量:837
采纳率:100%
帮助的人:1106万
展开全部
鼠标按下能获取到当前坐标,促发鼠标按下事件;

鼠标放开能获取到当前坐标,促发鼠标放开事件。
可以在这两个事件响应函数中进行绘图。
追问
具体函数
追答

 

void CDrawLinesDlg::OnLButtonDown(UINT nFlags, CPoint point) 

{

 // TODO: Add your message handler code here and/or call default

 m_ptLastPoint = point;

 CDialog::OnLButtonDown(nFlags, point);

}

void CDrawLinesDlg::OnLButtonUp(UINT nFlags, CPoint point) 

{

 // TODO: Add your message handler code here and/or call default

 m_ptSecondPoint = point;

 CClientDC dc(this);

  if(m_nDrawType == 0) //画线

  {

   dc.MoveTo(m_ptLastPoint);

   dc.LineTo(point);

  }

  else if(m_nDrawType == 1)

  {

   dc.Rectangle(m_ptLastPoint.x,m_ptLastPoint.y,point.x,point.y);

  }

  else

  {

   dc.Ellipse(m_ptLastPoint.x,m_ptLastPoint.y,point.x,point.y);

  }

 CDialog::OnLButtonUp(nFlags, point);

}

void CDrawLinesDlg::OnMouseMove(UINT nFlags, CPoint point) 

{

 // TODO: Add your message handler code here and/or call default

 if((nFlags & MK_LBUTTON)==MK_LBUTTON)

 {

  //真正的实时绘画应该在这里做。

  //记得每次擦除上一次绘画的内容,画上这一次绘画的内容。

 }

 

 CDialog::OnMouseMove(nFlags, point);

}

 

 

 

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式