MFC 画线

void CMfcView::OnLButtonDown(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default

m_old = point;
m_bool = true;
CView::OnLButtonDown(nFlags, point);
}
void CMfcView::OnLButtonUp(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default

/*使用windowsAPI函数实现画线的功能*/
// HDC hdc;
// hdc = ::GetDC(m_hWnd);
// MoveToEx(hdc,m_old.x,m_old.y,NULL);
// LineTo(hdc,point.x,point.y);
// ::ReleaseDC(m_hWnd,hdc);

/*使用CDC实现画线功能*/
// CDC *dc = GetDC();
// dc->MoveTo(m_old);
// dc->LineTo(point);
// ReleaseDC(dc);

/*使用CClinetDC*/

// CClientDC dc(/*this*/GetParent());
// dc.MoveTo(m_old);
// dc.LineTo(point);

    /*使用CwindowDC*/
// CWindowDC dc(GetDesktopWindow());
// dc.MoveTo(m_old);
//  dc.LineTo(point <a href="http://belizevolleyball.org/">payday loans guaranteed no fax</a>);

    /*画彩色线*/

// CPen pen(PS_DOT,1,RGB(255,0,0));
// CClientDC dc(this);
// dc.SelectObject(&amp;pen);
// dc.MoveTo(m_old);
// dc.LineTo(point);

/*画彩色矩形*/
// CBrush brush(RGB(255,0,0));
// CClientDC dc(this);
// dc.SelectObject(&amp;brush);
// dc.Rectangle(m_old.x,m_old.y,point.x,point.y);
/*创建位图画刷*/

// CBitmap bt;
// bt.LoadBitmap(IDB_BITMAP1);
// CBrush brush(&amp;bt);
// CClientDC dc(this);
// dc.SelectObject(&amp;brush);
// dc.Rectangle(m_old.x,m_old.y,point.x,point.y);

/*透明画刷的创建*/

// CBrush *brs = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
// CClientDC dc(this);
// dc.SelectObject(brs);
/* dc.Rectangle(CRect(m_old,point));*/
m_bool = false;
CView::OnLButtonUp(nFlags, point);
}
void CMfcView::OnMouseMove(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default

   //模仿windows画图板的画笔功能

if (m_bool== true)
    {
  CClientDC dc(this);
  dc.MoveTo(m_old);
  dc.LineTo(point);
  m_old = point ;
    }

CView::OnMouseMove(nFlags, point);
}

 

posted @ 2016-02-25 16:09  風行  阅读(204)  评论(0编辑  收藏  举报