网站什么叫做广告费:关于SelectObject函数

来源:百度文库 编辑:中财网 时间:2024/04/28 18:11:56
    百度上对于这个函数是这样说明的:    函数功能:该函数选择一对象到指定的设备上下文环境中,该新对象替换先前的相同类型的对象。
    函数原型:HGDIOBJ SelectObject(HDC hdc, HGDIOBJ hgdiobj);     参数

    hdc:设备上下文环境的句柄。

    hgdiobj:被选择的对象的句型,该指定对象必须由如下的函数创建。

    位图:CreateBitmap, CreateBitmapIndirect, CreateCompatible Bitmap, CreateDIBitmap, CreateDIBsection(只有内存设备上下文环境可选择位图,并且在同一时刻只能一个设备上下文环境选择位图)。

    画笔:CreateBrushIndirect, CreateDIBPatternBrush, CreateDIBPatternBrushPt, CreateHatchBrush, CreatePatternBrush, CreateSolidBrush。

    字体:CreateFont, CreateFontIndirect。

    笔:CreatePen, CreatePenIndirect。

    区域:CombineRgn, CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreateRectRgn, CreateRectRgnIndirect。

    返回值:如果选择对象不是区域并且函数执行成功,那么返回值是被取代的对象的句柄;如果选择对象是区域并且函数执行成功,返回如下一值;

    SIMPLEREGION:区域由单个矩形组成;COMPLEXREGION:区域由多个矩形组成。NULLREGION:区域为空。

    如果发生错误并且选择对象不是一个区域,那么返回值为NULL,否则返回GDI_ERROR。

    注释:该函数返回先前指定类型的选择对象,一个应用程序在它使用新对象进行绘制完成之后,应该用新对象替换原始的缺省的对象。

    应用程序不能同时选择一个位图到多个设备上下文环境中。

   ICM:如果被选择的对象是画笔或笔,那么就执行颜色管理。

    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:wingdi.h;库文件:gdi32.lib。   以下是我一个程序里的代码:CClientDC dc(this);
 CPen pen(PS_SOLID,1,RGB(255,0,0));
 dc.SelectObject(&pen);
 CBrush *pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
 dc.SelectObject(pBrush);注意下最后一行,如果将最后的参数改为&pBrush,那就不会有上面选定的透明的画刷。下面传上两个运行后的效果来参考下:这个是传入了参数,不加&符号运行效果而这个,就是没有传入透明画刷时的效果。通过这个小实验,以后更得注意,在这些函数的使用中,参数部分更是需要仔细再仔细的注意才会保证达到需要的效果。因为在上面两种情况下,编译都能通过而且没有错误或者warning的。