DeleteObject

DeleteObject,該函式刪除一個邏輯筆、畫筆、字型、點陣圖、區域或者調色板,釋放所有與該對象有關的系統資源,在對象被刪除之後,指定的句柄也就失效了。

基本介紹

  • 中文名:DeleteObject
  • 類型:函式
  • 作用:刪除,釋放系統資源
  • 函式原型:BOOL DeleteObject(HGDIOBJ
簡介,

簡介

函式原型:BOOL DeleteObject(HGDIOBJ hObject);
參數:
hObject:邏輯筆、畫筆、字型、點陣圖、區域或者調色板的句柄。
返回值:成功,返回非零值;如果指定的句柄無效或者它已被選入設備上下文環境,則返回值為零。
注釋:當一個繪畫對象(如筆或畫筆)當前被選入一個設備上下文環境時不要刪除該對象。當一個調色板畫筆被刪除時,與該畫筆相關的點陣圖並不被刪除,該圖必須單獨地刪除。
Windows CE:當對象在當前被選入一個設備上下文環境時,DeleteObject函式返回錯誤。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;頭檔案:wingdi.h;庫檔案:gdi32.lib。
示例:
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();
}
}

相關詞條

熱門詞條

聯絡我們