利用SDK全局函数
HDC hdc; hdc = ::GetDC(m_hWnd); //LineTo(hdc, px, py); ::ReleaseDC(m_hWnd, hdc);
::GetDC(m_hWnd); 是全局函数,得到当前设备描述表,::ReleaseDC(m_hWnd, hdc);全局函数,释放设备描述表。利用MFC的CDC类
CDC *pDC = GetDC(); //pDC->LineTo(p); ReleaseDC(pDC);
利用MFC的CClientDC类
CClientDC dc(this);//dc.LineTo(p);
内部会调用GetDC 析构时会自动释放DC。
//CPen pen(xxxxxxxx); CClientDC dc(this); CPen *pOldPen = dc.SelectObject(&pen); //dc.LineTo(p); dc.SelectObject(pOldPen);
在程序中,当构造一个GDI对象后,该对象并不会立即生效,必须选入设备描述表SelectObject,SelectObject会返回老的对象。完成操作时需把老的放回去SelectObject。