本示例在View中 :
void CDrawView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
//方式1:
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
//方式2:
CDC *pDC=GetDC();
pDC->MoveTo(m_ptOrigin);
pDC->LineTo(point);
ReleaseDC(pDC);
//释放DC
//方式3:
CClientDC dc(this);
//CClientDC dc(GetParent()); //获得父窗口(Frame)DC
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
//方式4:
CWindowDC dc(this);
//CWindowDC dc(GetParent());
//父窗口DC
//CWindowDC dc(GetDesktopWindow());
//桌面DC
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
CPen pen(PS_DOT,1,RGB(0,255,0));
//创建画笔
CClientDC dc(this);
CPen *pOldPen=dc.SelectObject(&pen);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
dc.SelectObject(pOldPen);
CBrush brush(RGB(255,0,0));
//创建红色画刷
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
CBrush brush(&bitmap);
//创建位图画刷
CClientDC dc(this);
dc.FillRect(CRect(m_ptOrigin,point),&brush);
//画刷填充矩形区域
//创建透明画刷
CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
CBrush *pOldBrush=dc.SelectObject(pBrush);
//选入DC
dc.Rectangle(CRect(m_ptOrigin,point));
dc.SelectObject(pOldBrush);
//返回原画刷
CView::OnLButtonUp(nFlags, point);
}