鼠标移动

xiaoxiao2021-02-28  90

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); }
转载请注明原文地址: https://www.6miu.com/read-82521.html

最新回复(0)