鼠标移动

void CMy07113View::OnLButtonDown(UINT nFlags, CPoint point)
{
    GetClipCursor(&m_rcOldClip);                    // 获取原鼠标活动的有效区域
    m_startPoint = point;
    SetCapture();                               // 进行鼠标捕捉

    CView::OnLButtonDown(nFlags, point);
}


void CMy07113View::OnLButtonUp(UINT nFlags, CPoint point)
{
    ClipCursor(&m_rcOldClip);                   // 恢复原来的鼠标活动区域
    ReleaseCapture();                           // 释放鼠标捕捉

    CView::OnLButtonUp(nFlags, point);
}


void CMy07113View::OnMouseMove(UINT nFlags, CPoint point)
{
    CDC *pDC = GetDC();             // 获取视图的设备上下文
    HCURSOR cursor;                 // 鼠标光标句柄
    RECT rcClip;                    // 现在鼠标活动区域矩形

    // 移动鼠标时鼠标左键是按下的
    if((nFlags & MK_LBUTTON) == MK_LBUTTON)
    {
        //GetClientRect(&rcClip);   // 只是获取客户区坐标,区域中只有一部分可以到达
        GetWindowRect(&rcClip);     // 获取客户区窗口区域
        ClipCursor(&rcClip);        // 将鼠标的移动限制在客户区中
        // 载入标准十字光标
        cursor = AfxGetApp()->LoadStandardCursor(IDC_CROSS);
        SetCursor(cursor);          // 使用新光标
        pDC->MoveTo(m_startPoint);
        pDC->LineTo(point);
        m_startPoint = point;
    }

    CView::OnMouseMove(nFlags, point);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值