ectEllipse);
if (circle.PtInRegion(point)) {
//捕捉鼠标
SetCapture();
m_bCaptured = TRUE;
CPoint pointTopLeft(m_pointTopLeft);
dc.LPtoDP(&pointTopLeft);
m_sizeOffset = point - pointTopLeft;
//设置光标形状为十字状
::SetCursor(::LoadCursor(NULL, IDC_CROSS));
}
CScrollView::OnLButtonDown(nFlags, point);
}
void CMoveSelObView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if (m_bCaptured) {
//释放鼠标捕捉
::ReleaseCapture();
m_bCaptured = FALSE;
}
CScrollView::OnLButtonUp(nFlags, point);
}
void CMoveSelObView::OnMouseMove(UINT nFlags, CPoint point)
{
if (m_bCaptured) {
//如果有图形被选中,并且鼠标被捕捉则更新图形位置
CClientDC dc(this);
OnPrepareDC(&dc);
CRect rectOld(m_pointTopLeft, m_sizeEllipse);
dc.LPtoDP(rectOld);
//擦除老位置的图形
InvalidateRect(rectOld, TRUE);
m_pointTopLeft = point - m_sizeOffset;
dc.DPtoLP(&m_pointTopLeft);
//在新位置画图形
CRect rectNew(m_pointTopLeft, m_sizeEllipse);
dc.LPtoDP(rectNew);
InvalidateRect(rectNew, TRUE);
}
CScrollView::OnMouseMove(nFlags, point);
}