现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

mfc橡皮筋技术绘图三步走

2012-12-21 23:38 工业·编程 ⁄ 共 789字 ⁄ 字号 评论 1 条

橡皮筋技术,有三个过程:

1. 鼠标左键按下:记录起始点。

2. 鼠标移动:画出从起始点到现有点的直线,并删除上一条直线。

3. 鼠标左键松开:画出起始点到现有点的直线。

我是通过取反操作来进行的:

dc.SetROP2(R2_NOT);

利用绘图模式绘制橡皮筋矩形

过程一:

void Cdraw_line_rubber_band_skillView::OnMButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
flag = true;
m_ptOld = m_ptOrigin = point;
CView::OnMButtonDown(nFlags, point);
}

过程二:

void Cdraw_line_rubber_band_skillView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if(flag) {
CClientDC dc(this);
dc.SetROP2(R2_NOT);
dc.MoveTo(m_ptOrigin);
dc.LineTo(m_ptOld);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
m_ptOld = point;
CView::OnMouseMove(nFlags, point);
}
}

过程三:

void Cdraw_line_rubber_band_skillView::OnMButtonUp(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
flag = false;
CClientDC dc(this);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
CView::OnMButtonUp(nFlags, point);
}

目前有 1 条留言    访客:0 条, 博主:0 条 ,引用: 1 条

    外部的引用: 1 条

    • 橡皮筋算法的原理和实现 « 求索阁

    给我留言

    留言无头像?