分享

DeleteDC() ReleaseDC()和DeleteObject()之间的区别

 树梢上的一线阳光 2011-03-26
DeleteDC( )
该函数删除指定的设备上下文环境(DC)。
原型:
BOOL DeleteDC(HDC hdc);
参数:
hdc:设备上下文环境的句柄。
返回值:
   成功,返回非零值;失败,返回零。调用GetLastError获取扩展错误信息。
说明:
   如果一个设备上下文环境的句柄是通过调用GetDC函数得到的,那么应用程序不能删除该设备上下文环境,它应该调用ReleaseDC函数来释放该设备上下文环境。

ReleaseDC( )
函数释放设备上下文环境(DC)供其他应用程序使用。函数的效果与设备上下文环境类型有关。
原型:
int ReleaseDC(HWND hWnd, HDC hdc);
参数:
hWnd:指向要释放的设备上下文环境所在的窗口的句柄。
hDC:指向要释放的设备上下文环境的句柄。
返回值:
   返回值说明了设备上下文环境是否释放;如果释放成功,则返回值为1;如果没有释放成功,则返回值为0。
说明:
   每次调用GetWindowDC和GetDC函数检索公用设备上下文环境之后,应用程序必须调用ReleaseDC函数来释放设备上下文环境。
   应用程序不能调用ReleaseDC函数来释放由CreateDC、CreateCopatibleDC 函数创建的设备上下文环境,只能使用DeleteDC函数。
 
DeleteObject( )
该函数删除一个逻辑笔、画笔、字体、位图、区域或者调色板,释放所有与该对象有关的系统资源,在对象被删除之后,指定的句柄也就失效了。
原型:
BOOL DeleteObject(HGDIOBJ hObject);
参数:
hObject:逻辑笔、画笔、字体、位图、区域或者调色板的句柄。
返回值:
   成功,返回非零值;如果指定的句柄无效或者它已被选入设备上下文环境,则返回值为零。调用GetLastError获取扩展错误信息。
说明:
   当一个绘画对象(如笔或画笔)当前被选入一个设备上下文环境时不要删除该对象。当一个调色板画笔被删除时,与该画笔相关的位图并不被删除,该图必须单独地删除。
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多