当前位置:首页 科普知识 DeleteObject

DeleteObject

发布时间:2023-09-14 00:54:51

DeleteObject,该函数删除一个逻辑笔、画笔、字体、位图、区域或者调色板,释放所有与该对象有关的系统资源,在对象被删除之后,指定的句柄也就失效了。

DeleteObject介绍

DeleteObject,该函数删除一个逻辑笔、画笔、字体、位图、区域或者调色板,释放所有与该对象有关的系统资源,在对象被删除之后,指定的句柄也就失效了。

DeleteObject

DeleteObject函数原型

BOOL DeleteObject(HGDIOBJ hObject);

DeleteObject参数

hObject:逻辑笔、画笔、字体、位图、区域或者调色板的句柄。

返回值:成功,返回非零值;如果指定的句柄无效或者它已被选入设备上下文环境,则返回值为零。

注释:当一个绘画对象(如笔或画笔)当前被选入一个设备上下文环境时不要删除该对象。当一个调色板画笔被删除时,与该画笔相关的位图并不被删除,该图必须单独地删除。

Windows CE:当对象在当前被选入一个设备上下文环境时,DeleteObject函数返回错误。

速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:

1.0及以上版本;头文件:wingdi.h;库文件:gdi32.lib。

DeleteObject示例

void CRingView::onDraw(CDC* pDC)

{

CRingDoc* pDoc = Getdocument();

ASSERT_VALID(pDoc);

if (!pDoc)

return;

// TODO: 在此处为本机数据添加绘制代码

PointArray& pointArray = pDoc->GetPointArray();

ColorArray& colorArray = pDoc->GetColorArray();

DeleteObject

int iSize = (int)pointArray.GetSize();

for (int iIndex = 0; iIndex<iSize; ++iIndex)

{

CPoint point = pointArray;

COLORREF color = colorArray;

CPen pen(PS_SOLID,0,BLACK);

CBrush brush(color);

//将临时的CPen和CBrush选入DC,通过返回值保存原来的GDI对象

CPen* pOldPen = pDC->SelectObject(&pen);

CBrush* pOldBrush = pDC->SelectObject(&brush);

//使用含有pen和brush的DC进行画图

pDC->Ellipse(point.x-RADIUS,point.y-RADIUS,point.x+RADIUS,point.y+RADIUS);

//重新载入原来的GDI对象使得临时GDI对象不再被引用而可以销毁

pDC->SelectObject(pOldPen);

pDC->SelectObject(pOldBrush);

//调用DeleteObject释放pen和brush的资源

DeleteObject

pen.DeleteObject();

brush.DeleteObject();

}

}

温馨提示:
本文【DeleteObject】由作者 爱百科 转载提供。 该文观点仅代表作者本人, 自学教育网 信息发布平台,仅提供信息存储空间服务, 若存在侵权问题,请及时联系管理员或作者进行删除。
(c)2008-2025 自学教育网 All Rights Reserved 汕头市灵创科技有限公司
粤ICP备2024240640号-6