1. HDC
HDC是指窗體,控件的句柄,是長整類型.
這是windows編程里很重要的一個類型,它唯一標識了一個對象.比如窗口,按鈕,視圖等,也就是一個代號.
另外它和C++沒有什么直接的關系,HDC是windows系統API中定義的一個數據類型.
注意,GetDC()得到的句柄必須用ReleaseDC()函數釋放!而用Create建立的句柄必須用DeleteDC()釋放.
2. BOOL MoveToEx(HDC hdc, int x,int y,LPPOINT lppt).
hdc是當前設備的句柄.
x是X軸的位置,水平方向,一般原點是在屏幕左上角的位置.
y是Y軸的位置,垂直方向.
lppt是移動前的坐標位置.
3.BOOL WINAPI LineTo(HDC hdc, int x, int y);
hdc是當前設備的句柄.
x是X軸的位置,水平方向,一般原點是在屏幕左上角的位置.
y是Y軸的位置,垂直方向.
// CDrawView 消息處理程序
void CDrawView::OnLButtonDown(UINT nFlags, CPoint point)


{
// TODO: 在此添加消息處理程序代碼和/或調用默認值
m_ptOrigin=point;
CView::OnLButtonDown(nFlags, point);
}

void CDrawView::OnLButtonUp(UINT nFlags, CPoint point)


{

/**//*********************************************
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);
CView::OnLButtonUp(nFlags, point);
**********************************************/


/**//*********************************************
CDC *pDC=GetDC();
pDC->MoveTo(m_ptOrigin);
pDC->LineTo(point);
ReleaseDC(pDC);
CView::OnLButtonUp(nFlags, point);
**********************************************/


/**//*********************************************
CClientDC dc(this);
//CClientDC dc(GetParent());
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
CView::OnLButtonUp(nFlags, point);
**********************************************/


/**//*********************************************
CWindowDC dc(GetDesktopWindow());
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
CView::OnLButtonUp(nFlags, point);
**********************************************/


/**//*********************************************
CPen pen(PS_DOT,1,RGB(20,255,0));
CClientDC dc(this);
//把畫筆選入設備描述表
CPen *pOldPen=dc.SelectObject(&pen);
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
dc.SelectObject(pOldPen);
CView::OnLButtonUp(nFlags, point);
**********************************************/

/**//*********************************************
CBitmap bitmap;
bitmap.LoadMappedBitmap(IDR_AA1);
CBrush brush(&bitmap);
CClientDC dc(this);
dc.FillRect(CRect(m_ptOrigin,point),&brush);
CView::OnLButtonUp(nFlags, point);
**********************************************/

CClientDC dc(this);
CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
CBrush *pOldBrush=dc.SelectObject(pBrush);
dc.Rectangle(CRect(m_ptOrigin,point));
dc.SelectObject(pOldBrush);
CView::OnLButtonUp(nFlags, point);
}