• 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/

  • 相关阅读:
    javascript规范
    freemarker规范
    java代码质量
    使用ESP8266制作一个微型气象站
    热风枪焊接表面贴装元件的工具和技巧
    MCUXpresso IDE:导入Kinetis Design Studio工程
    基于LPCXpresso54608开发板创建Embedded Wizard UI应用程序
    STM32 LoRaWAN探索板B-L072Z-LRWAN1入门指南
    LPCXpresso54608开发板中文用户手册
    STM32 LoRaWAN探索板B-L072Z-LRWAN1中文用户手册
  • 原文地址:https://www.cnblogs.com/vranger/p/3564606.html
Copyright © 2020-2023  润新知