-
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(); } }
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:11次歷史版本
- 最近更新: canguanxihu