DeleteDC() 與 ReleaseDC() 的區別 [轉]


DeleteDC  

該函數刪除指定的設備上下文環境(DC)。

原型:

BOOL DeleteDC(HDC hdc);

參數:

hdc:設備上下文環境的句柄。

返回值:

   成功,返回非零值;失敗,返回零。調用GetLastError獲取擴展錯誤信息。

說明:

   如果一個設備上下文環境的句柄是通過調用GetDC函數得到的,那么應用程序不能刪除該設備上下文環境,它應該調用ReleaseDC函數來釋放該設備上下文環境。


ReleaseDC   

 

函數釋放設備上下文環境(DC)供其他應用程序使用。函數的效果與設備上下文環境類型有關。

原型:

int ReleaseDC(HWND hWnd, HDC hdc);

參數:

hWnd:指向要釋放的設備上下文環境所在的窗口的句柄。

hDC:指向要釋放的設備上下文環境的句柄。

返回值:

   返回值說明了設備上下文環境是否釋放;如果釋放成功,則返回值為1;如果沒有釋放成功,則返回值為0。

說明:

   每次調用GetWindowDCGetDC函數檢索公用設備上下文環境之后,應用程序必須調用ReleaseDC函數來釋放設備上下文環境。

   應用程序不能調用ReleaseDC函數來釋放由CreateDC、CreateCopatibleDC 函數創建的設備上下文環境,只能使用DeleteDC函數。

 

DeleteObject

 

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

原型:

BOOL DeleteObject(HGDIOBJ hObject);

參數:

hObject:邏輯筆、畫筆、字體、位圖、區域或者調色板的句柄。

返回值

   成功,返回非零值;如果指定的句柄無效或者它已被選入設備上下文環境,則返回值為零。調用GetLastError獲取擴展錯誤信息。

說明:

   當一個繪畫對象(如筆或畫筆)當前被選入一個設備上下文環境時不要刪除該對象。當一個調色板畫筆被刪除時,與該畫筆相關的位圖並不被刪除,該圖必須單獨地刪除。

 

======================

void CGLView::GLRelease()
{
  wglDeleteContext(m_hRC);
  ::ReleaseDC(m_hWnd,m_hDC);
}

void CGLView::OnDestroy()
{
CView::OnDestroy();

// TODO: 在此處添加消息處理程序代碼
GLRelease();
}

 

轉自:http://blog.163.com/result_2205/blog/static/13981945020104621715982/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM