在MFC中画直线,要用到两个函数:
BOOL LineTo(//用于线段的终点 HDC hdc, // device context handle int nXEnd, // x-coordinate of ending point int nYEnd // y-coordinate of ending point );
和
BOOL MoveToEx(//用于线段的起点 HDC hdc, // handle to device context int X, // x-coordinate of new current position int Y, // y-coordinate of new current position LPPOINT lpPoint // old current position );
1)首先,为CDrawView.h添加一个private类型的成员变量"CPoint m_ptOrigin";
2)然后,在CDrawView()构造函数中,添加语句:"m_ptOrigin=0;"
3)在CDrawView.cpp中,添加如下代码:
void CDrawView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_ptOrigin=point;
CView::OnLButtonDown(nFlags, point);
}
void CDrawView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
HDC hdc;
hdc=::GetDC(m_hWnd);
MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL);
LineTo(hdc,point.x,point.y);
::ReleaseDC(m_hWnd,hdc);//释放DC
CView::OnLButtonUp(nFlags, point);
}
结果如下: