CDC
CDC* pDC=GetDC( ); //GetDC( )此时是CWnd 的成员函数
..............
ReleaseDC(pDC );
这两个函数需配对使用,DC也是一种资源,需要不停分配然后使用,使用完后释放。
CClientDC
void Clesson4View::OnLButtonUp(UINT nFlags, CPoint point)
{
CClientDC dc(this);
dc.MoveTo(m_startPoint);
dc.LineTo(point);
CView::OnLButtonUp(nFlags, point);
}
CClientDC构造函数:
explicit CClientDC(
CWnd* pWnd //pWnd指向获取要Client区域的窗口
);
CClientDC的构造函数会调用GetDC( ),析构函数调用ReleaseDC( ).因此不需要去手动再调用。
选择GDI对象
成员函数 : SelectObject( ) 把自定义的GDI对象选入DC
CPen* SelectObject( CPen* pPen );
CBrush* SelectObject( CBrush* pBrush);
virtual CFont* SelectObject( CFont* pFont);
CBitmap* SelectObject( CBitmap* pBitmap );
int SelectObject( CRgn* pRgn );
CGdiObject* SelectObject( CGdiObject* pObject);
成员函数 SelectStockObject( ) 加载系统预定义的GDI 如CPen CBursh CFont
比如空画刷 NULL_BRUSH
virtual CGdiObject* SelectStockObject(
int nIndex
);