VC画线几个常见方法

转自http://www.cnblogs.com/tuncaysanli/archive/2009/11/14/1603093.html

首先,在VIEW类中增加一个私有的成员变量m_ptOrigin,再增加两个windows的消息响应,一个是WM_LBUTTONDOWN,一个是WM_LBUTTONUP.

1:利用HDC去画线;

2:利用CDC画线;

3:利用CClientDC画线;

4:利用CWindowDC画线;

5:利用Cpen画线;

代码如下(仅包含了WM_LBUTTONDOWN和WM_LBUTTONUP中的代码):

 1:  void CBlogView::OnLButtonDown(UINT nFlags, CPoint point) 
 2:  {
 3:  // TODO: Add your message handler code here and/or call default
 4:  m_ptOrigin=point;
 5:  CView::OnLButtonDown(nFlags, point);
 6:  }
 7:   
 8:  void CBlogView::OnLButtonUp(UINT nFlags, CPoint point) 
 9:  {
10:  // TODO: Add your message handler code here and/or call default
11:  /* HDC hdc;
12:  hdc=::GetDC(m_hWnd);
13:  MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL);
14:  LineTo(hdc,point.x,point.y);
15:  ::ReleaseDC(m_hWnd,hdc);//利?用?SDK的?HDC画?线?
16:  */
17:  /* CDC *pDC=GetDC();
18:  pDC->MoveTo(m_ptOrigin);
19:  pDC->LineTo(point);
20:  ReleaseDC(pDC);//利?用?CDC画?线?
21:  */
22:  /* CClientDC dc(this);
23:  dc.MoveTo(m_ptOrigin);
24:  dc.LineTo(point);//利?用?CClientDC画?线?
25:  */
26:  /* CWindowDC dc(GetDesktopWindow());
27:  dc.MoveTo(m_ptOrigin);
28:  dc.LineTo(point);//利?用?CWindowDC画?线?。?
29:  */
30:  /* CPen pen(PS_SOLID,1,RGB(123,123,123));
31:  CClientDC dc(this);
32:  CPen *pOldPen=dc.SelectObject(&pen);
33:  dc.MoveTo(m_ptOrigin);
34:  dc.LineTo(point);
35:  dc.SelectObject(pOldPen);//用?Cpen去?画?线?
36:  */
37:  CView::OnLButtonUp(nFlags, point);
38:  }
posted on 2010-12-01 10:49  sunliming  阅读(7593)  评论(0编辑  收藏  举报