1.画线
void CDraw2View::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
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);//采用平台SDK的ReleaseDC释放DC。
CView::OnLButtonUp(nFlags, point);
}
以上采用全局API画线,MFC把所有和作图相关的操作都封装在CDC类中。
使用CDC类画线
CDC *pDC = GetDC();
pDC->MoveTo(m_ptOrigin);
pDC->LineTo(point);
ReleaseDC(pDC);
使用CClientDC(派生自CDC类)画线:
CClientDC dc(this);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
使用此方法不需要我们手动去调用ReleaseDC.
使用CWindowDC
CWindowDC dc(this);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
使用此方也不需要我们手动去调用ReleaseDC.
如果使用CWindwosDC,可以在非客户区作图
如:
CWindowDC dc(GetParent());
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);