最佳答案:
SelectObject,计算机编程语言函数,该函数选择一对象到指定的设备上下文环境中,该新对象替换先前的相同类型的对象。
详情介绍
SelectObject,计算机编程语言函数,该函数选择一对象到指定的设备上下文环境中,该新对象替换先前的相同类型的对象。

- 中文名
- SelectObject
- hdc
- 设备上下文环境的句柄
- hgdiobj
- 被选择的对象的句柄
- Windows NT
- 3.1及以上版本
- 函数功能
- 该函数选择一对象到指定的设备上下文环境中,该新对象替换先前的相同类型的对象。
- 函数原型
- HGDIOBJ SelectObject(HDC hdc, HGDIOBJ hgdiobj)
- 字体
- CreateFont, CreateFontIndirect。
- 笔
- CreatePen, CreatePenIndirect。
- SIMPLEREGI
- 区域由单个矩形组成
- COMPLEXREG
- 区域由多个矩形组成
- NULLREGION
- 区域为空
- ICM
- 如果被选择的对象是画笔或笔,那么就执行颜色管理
- 3.1及以上版本
- Windows
- 95及以上版本
- Windows CE
- 1.0及以上版
- 头文件:wingdi.h
- 库文件
- gdi32.lib
SelectObject位图
CreateBitmap, CreateBitmapIndirect, CreateCompatible Bitmap, CreateDIBitmap, CreateDIBsection(只有内存设备上下文环境可选择位图,并且在同一时刻只能一个设备上下文环境选择位图)。
SelectObject画刷
CreateBrushIndirect, CreateDIBPatternBrush, CreateDIBPatternBrushPt, CreateHatchBrush, CreatePatternBrush, CreateSolidBrush。
SelectObject区域
CombineRgn, CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreateRectRgn, CreateRectRgnIndirect。
SelectObject返回值
如果选择对象不是区域并且函数执行成功,那么返回值是被取代的对象的句柄;如果选择对象是区域并且函数执行成功,返回如下一值:
如果发生错误并且选择对象不是一个区域,那么返回值为NULL,否则返回HGDI_ERROR。
SelectObject注释
该函数返回先前指定类型的选择对象,一个应用程序在它使用新对象进行绘制完成之后,应该用原始的缺省的对象替换新对象。
应用程序不能同时选择一个位图到多个设备上下文环境中。

SelectObject示例
HDC hdc=GetDC(hwnd);
HDC memdc=CreateCompatibleDC(hdc);
RECT rc;
BITMAP bmp;
HBITMAP holdbmp,hbmp=LoadBitmap(hInstDVBRes,MAKEINTRESOURCE(IDB_CLOCK));//从资源加载位图
holdbmp=(HBITMAP)SelectObject(memdc,hbmp);//这里把hbmp的位图选择到兼容DC memdc,之后这个兼容DC就拥有和
//hbmp同样大小的绘图区域,注意超出位图返回的GDI输出都是无效的.
GetObject(hbmp,sizeof(BITMAP),&bmp);//这里获取位图的大小信息,事实上也是兼容DC绘图输出的范围

SetRect(&rc,0,0,bmp.bmWidth,bmp.bmHeight);
DrawText(memdc,"Center Line Text" -1,&rc,DT_VCENTER|DT_SINGLELINE|DT_CENTER);//在兼容DC中间位置输出字符串
//这样以来我们就相当于把hbmp这个位图加上了文字标注,我们可以把这个增加了文字标注的位图保存起来.一个简单的图像处理基本就OK了.
SelectObject(memdc,holdbmp);//复原兼容DC数据.
DeleteDC(memdc);
免责声明:本平台仅供信息发布交流之途,请谨慎判断信息真伪。如遇虚假诈骗信息,请立即举报
举报