SelectObject()函数
来源:互联网 发布:java实现深度优先遍历 编辑:程序博客网 时间:2024/05/22 02:19
把一个对象(位图、画笔、画刷等)选入指定的设备描述表。新的对象代替同一类型的老对象。
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(选择一个对象到设备上下文中去).
- 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
- );
参数:
A pointer to a CPen object to be selected.
A pointer to a CBrush object to be selected.
A pointer to a CFont object to be selected.
A pointer to a CBitmap object to be selected.
A pointer to a CRgn object to be selected.
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、测试代码
- 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、运行结果:
- SelectObject()函数
- SelectObject函数
- SelectObject()函数
- SelectObject()函数
- SelectObject和DeleteObject 函数
- SelectObject和DeleteObject函数
- SelectObject和DeleteObject函数
- SelectObject和DeleteObject函数
- SelectObject和DeleteObject函数
- SelectObject()函数详解
- SelectObject 函数详解
- SelectObject和DeleteObject函数
- GetStockObject和SelectObject函数
- SelectObject()函数详解
- (29)SelectObject和DeleteObject函数
- SelectObject和DeleteObject函数用法
- SelectObject
- SelectObject
- tcp与udp socket使用上面的区别
- bzoj2659 [Beijing wc2012]算不出的算式
- 折半查找法
- Activity的四种加载模式
- NSDictionary字典的常用方法
- SelectObject()函数
- 【PAT】1018. Public Bike Management
- webpack的坑——Object.assign
- java学习笔记-cmd执行java程序
- struts框架搭建解决方案
- 自己动手写一个推荐系统
- 关于自己。
- #Android# Android Studio报错 Failure [INSTALL_FAILED_OLDER_SDK]
- 【BZOJ1012】最大数maxnumber,疯狂CE的线段树练习