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);
}
鼠标移动
最新推荐文章于 2023-07-14 09:15:15 发布