void CChildView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_OriginPosition = point;
m_draw = TRUE;
m_old = point;
CWnd ::OnLButtonDown(nFlags, point);
}
void CChildView::OnLButtonUp(UINT nFlags, CPoint point)
{
/*
//1.利用winapi全局函数
HDC hdc; // 设备上下文句柄
hdc = ::GetDC(m_hWnd);
MoveToEx(hdc, m_OriginPosition.x, m_OriginPosition.y, NULL);
LineTo(hdc, point.x, point.y);
::ReleaseDC(m_hWnd, hdc); //释放dc
*/
/*
//2.利用mfc CDC类
CDC *pDC= GetDC();
pDC->MoveTo(m_OriginPosition);
pDC->LineTo(point);
ReleaseDC(pDC);
*/
/*
//3.CClientDC
CClientDC dc(this);
dc.MoveTo(m_OriginPosition);
dc.LineTo(point);
CClientDC dc(GetParent());
dc.MoveTo(m_OriginPosition);
dc.LineTo(point);*/
/*
//CWindowDC
CWindowDC dc(this);
dc.MoveTo(m_OriginPosition);
dc.LineTo(point);
CWindowDC dc(GetParent());
dc.MoveTo(m_OriginPosition);
dc.LineTo(point);
CWindowDC dc(GetDesktopWindow());
dc.MoveTo(m_OriginPosition);
dc.LineTo(point);*/
/*
CPen pen(PS_SOLID, 1, RGB(255, 0, 0));
CClientDC dc(this);
CPen *pOldPen = dc.SelectObject(&pen);
dc.MoveTo(m_OriginPosition);
dc.LineTo(point);
dc.SelectObject(pOldPen); */
/* CBrush brush(RGB(255, 0, 0));
CWindowDC dc(this);
dc.FillRect(CRect(m_OriginPosition, point), &brush);*/
/* CBrush *pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
CClientDC dc(this);
CBrush *pOldPen = dc.SelectObject(pBrush);
dc.Rectangle(CRect(m_OriginPosition, point));
dc.SelectObject(pOldPen);*/
m_draw = FALSE;
CWnd ::OnLButtonUp(nFlags, point);
}
void CChildView::OnMouseMove(UINT nFlags, CPoint point)
{
CClientDC dc(this);
if (m_draw)
{
/*
dc.MoveTo(m_OriginPosition);
dc.LineTo(point);
m_OriginPosition = point;*/
dc.MoveTo(m_OriginPosition);
dc.LineTo(m_old);
dc.MoveTo(m_OriginPosition);
dc.LineTo(point);
m_old = point;
}
CWnd ::OnMouseMove(nFlags, point);
}