MFC笔记-----CDC 以及绘图

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 
);
展开阅读全文

没有更多推荐了,返回首页