SelectObject
把一個對象(位元影像、畫筆、畫刷等)選入指定的裝置描述表。新的對象代替同一類型的老對象。
| HGDIOBJ SelectObject( HDC hdc, // handle to DC HGDIOBJ hgdiobj // handle to object ); |
參數 hdc 裝置描述表控制代碼(要載入的裝置描述表控制代碼) hgdiobj 選擇要載入的對象的控制代碼
但該對象的控制代碼必須使用以下函數建立才有效:
Bitmap(位元影像) CreateBitmap, CreateBitmapIndirect,
CreateCompatibleBitmap, CreateDIBitmap,
CreateDIBSection
Brush(畫刷) CreateBrushIndirect, eateDIBPatternBrush,
CreateDIBPatternBrushPt, CreateHatchBrush,
CreatePatternBrush, CreateSolidBrush
Font(字型) CreateFont, CreateFontIndirect
Pen(畫筆) CreatePen, CreatePenIndirect
Region(地區) CombineRgn, CreateEllipticRgn,
CreateEllipticRgnIndirect,
CreatePolygonRgn, CreateRectRgn,
CreateRectRgnIndirect
傳回值:如果選擇對象不是地區並且函數執行成功,那麼傳回值是被取代的對象的控制代碼;如果選擇對象是地區並且函數執行成功,返回如下一值;
=======================================================
1、看MSDN中的解釋:
Selects an object into the device context(選擇一個對象到裝置上下文中去).
[cpp] view plain copy 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 fromCGdiObject, such as CPen, depending on which version of the function is used.
返回一個指向被代替的對象的指標。這個真正指向的對象是重載於CGdiObject類的一種,比如CPen,具體以來與所使用的函數版本。
2、測試代碼
[cpp] view plain copy 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*&n