複製鏈接
請複製以下鏈接發送給好友

DeleteObject

鎖定
DeleteObject,該函數刪除一個邏輯筆、畫筆、字體、位圖、區域或者調色板,釋放所有與該對象有關的系統資源,在對象被刪除之後,指定的句柄也就失效了。
中文名
DeleteObject
類    型
函數
作    用
刪除,釋放系統資源
函數原型
BOOL DeleteObject(HGDIOBJ

目錄

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();
int iSize = (int)pointArray.GetSize();
for (int iIndex = 0; iIndex<iSize; ++iIndex)
{
CPoint point = pointArray[iIndex];
COLORREF color = colorArray[iIndex];
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的資源
pen.DeleteObject();
brush.DeleteObject();
}
}