CDC中的SelectObject

1、看MSDN中的解释:

Selects an object into the device context(选择一个对象到设备上下文中去).

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 );

 

参数:

pPen

A pointer to a CPen object to be selected.

pBrush

A pointer to a CBrush object to be selected.

pFont

A pointer to a CFont object to be selected.

pBitmap

A pointer to a CBitmap object to be selected.

pRgn

A pointer to a CRgn object to be selected.

pObject

A pointer to a CGdiObject object to be selected.

 

返回值:

A pointer to the object being replaced. This is a pointer to an object of one of the classes derived from CGdiObject, such as CPen, depending on which version of the function is used.

 

返回一个指向被代替的对象的指针。这个真正指向的对象是重载于CGdiObject类的一种,比如CPen,具体以来与所使用的函数版本。

 

2、测试代码

void CDrawView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default m_ptBegin=point;//m_ptBegin是类的成员,类型为CPoint CView::OnLButtonDown(nFlags, point); } void CDrawView::OnLButtonUp(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default CPen pen(PS_SOLID, 1, RGB(255, 0, 0)); CClientDC dc(this); CPen* pOldPen=dc.SelectObject(&pen);//保存原始的CPen,即黑色的CPen dc.MoveTo(m_ptBegin); dc.LineTo(point); dc.SelectObject(pOldPen);//恢复原始的CPen dc.MoveTo(m_ptBegin); dc.LineTo(point.x+100, point.y); CView::OnLButtonUp(nFlags, point); }

 

3、运行结果:

 

你可能感兴趣的:(Windows编程)