Matrix1123 2017-10-16 05:17 采纳率: 100%
浏览 1453
已采纳

新手求问MFC中onlbuttondown的第一次点击坐标为什么总是左上角?

目的实现一个很简单的画线功能,屏幕上点击两次,在这两点之间画出一条线段。以下是关键代码

 int count = 0;
CPoint points[2];
void CMFCApplication1View::OnLButtonDown(UINT nFlags, CPoint point)
{
    // TODO: 在此添加消息处理程序代码和/或调用默认值

    CDC *pDC = GetDC();
    CPen pen(PS_SOLID, 1, RGB(255, 0, 0));
    pDC->SelectObject(&pen);
    if (count == 0) {
        points[0] = point;
        count++;
    }
    else{
        points[1] = point;
        pDC->LineTo(points[0]);
        pDC->MoveTo(points[1]);
        points[0] = (0, 0);
        points[1] = (0, 0);
        count = 0;
    }
    CView::OnLButtonDown(nFlags, point);
}

我用count记录点击的次数,每当点击两次以后就归零,把两次的鼠标坐标存在points数组里,画完一次再归零。然而运行结果如图,所有线段的一个端点都是左上角,请问改怎么修改代码?谢谢!

图片说明

  • 写回答

1条回答 默认 最新

  • littlebai07 2017-10-16 05:23
    关注

    pDC->LineTo(points[0]);
    pDC->MoveTo(points[1]);

    这两行是不是写反了?
    应该先MoveTo points[0]
    再LintTo points[1]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题