图形编程中释放资源的几个函数

来源:互联网 发布:mac密码怎么取消 编辑:程序博客网 时间:2024/05/18 03:46

DeleteDC

如果一个设备上下文环境的句柄是通过调用GetDC函数得到的,那么应用程序不能删除该设备上下文环境,它应该调用ReleaseDC函数来释放该设备上下文环境。

ReleaseDC


每次调用GetWindowDCGetDC函数检索公用设备上下文环境之后,应用程序必须调用ReleaseDC函数来释放设备上下文环境。

应用程序不能调用ReleaseDC函数来释放由CreateDC、CreateCopatibleDC 函数创建的设备上下文环境,只能使用DeleteDC函数。

DeleteObject

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

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

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

C++编程中,支持使用new操作符动态申请一块内存,但一定要在应用程序结束之前使用delete操作符释放内存,否则将造成内存溢出。这对于嵌入式设备中有限的内存更是至关重要。

[::] delete cast-expression

[::] delete [ ] cast-expression

new和delete结合着使用,如:

CDialog* MyDialog = new CDialog;

// use MyDialog

delete MyDialog;

int* set = new int[100];

//use set[]

delete [] set;


·DeleteObject

Deleteobject与SelectObject结合着使用,在GDI对象使用完之后,释放GDI对象所关联的内存。需要注意的是:CGdiObject类的对象所关联的内存不能够使用Deleteobject函数来释放。


·ReleaseDC

每次成功调用GetWindowDC或者GetDC之后,最终都要调用ReleaseDC来释放DC。


·DeleteDC

这个函数通常用来删除由CreateDC或者CreateCompatibleDC建立的DC资源,需要注意的是,如果有GDI对象被选入了某个device context,那么这时候不要使用DeleteDC来删除该DC。

ReleaseDC

  函数功能:函数释放设备上下文环境(DC)供其他应用程序使用。函数的效果与设备上下文环境类型有关。它只释放公用的和设备上下文环境,对于类或私有的则无效。
  函数原型:int ReleaseDC(HWND hWnd, HDC hdc);
  参数:
  hWnd:指向要释放的设备上下文环境所在的窗口的句柄。
  hDC:指向要释放的设备上下文环境的句柄。
  返回值:返回值说明了设备上下文环境是否释放;如果释放成功,则返回值为1;如果没有释放成功,则返回值为0。

  应用程序不能调用ReleaseDC函数来释放由CreateDC函数创建的设备上下文环境,只能使用DeleteDC函。


原创粉丝点击