转自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: }