DeleteDC 与 CreateDC 对应
ReleaseDC 与 GetDC 对应

借过来的(GetDC),就要放还回去(ReleaseDC)
自已创建的(CreateDC),要自已删除(DeleteDC)

总之,要“用过之后, 不留痕迹”

还有以下的特殊情况,如CClientDC   dc(this)或CPaintDC dc(this);
对于这样的dc到最后是否需要ReleaseDC()?

答案是:不需要。
因为,在MFC中,WM_PAINT之类的消息在销毁时会自动调用
CPaintDC的析构函数,对对像dc进行销毁,如下:

CPaintDC::~CPaintDC()
{
ASSERT(m_hDC   !=   NULL);
ASSERT(::IsWindow(m_hWnd));

::EndPaint(m_hWnd,   &m_ps);//在EndPaint函数中释放dc
Detach();
}

而CClientDC的对像dc则会在CClientDC的析构函数中被释放

CClientDC::~CClientDC()
{
ASSERT(m_hDC   !=   NULL);
::ReleaseDC(m_hWnd,   Detach());
}

DeleteDC 与 ReleaseDC的区别相关推荐

  1. DeleteDC() 与 ReleaseDC() 的区别 [转]

    DeleteDC 该函数删除指定的设备上下文环境(DC). 原型: BOOL DeleteDC(HDC hdc): 参数: hdc:设备上下文环境的句柄. 返回值: 成功,返回非零值:失败,返回零.调 ...

  2. DeleteDC与ReleaseDC的区别

    1.CreateCompatibleDC后用DeleteDC 2.GetDC后用ReleaseDC

  3. DeleteDC() 与 ReleaseDC() 的区别

    点击打开原文链接 DeleteDC 该函数删除指定的设备上下文环境(DC). 原型: BOOL DeleteDC(HDC hdc): 参数: hdc:设备上下文环境的句柄. 返回值: 成功,返回非零值 ...

  4. DeleteDC、ReleaseDC、DeleteObject - [Daliy APIs]

    DeleteDC 该函数删除指定的设备上下文环境(DC). 原型: BOOL DeleteDC(HDC hdc): 参数: hdc:设备上下文环境的句柄. 返回值: 成功,返回非零值:失败,返回零.调 ...

  5. deletedc和releasedc

    对于create的dc应该予以deletedc,而对于getdc的应予以releasedc

  6. BeginPaint EndPaint 与GetDC ReleaseDC的区别

    1. 绘图一般在WM_PAINT消息里面绘图, 一般用BeginPaint( HWND hwnd, LPPAINTSTRUCT lpPaint) 与BOOL EndPaint(   HWND hWnd ...

  7. BeginPaint和GetDC有什么区别?【转】

    转自:http://hi.baidu.com/d_b_mike/blog/item/ec8820d0fb9127d5572c84a9.html 这是个windows编程问题. 第一种情况显示出来的字很 ...

  8. VC绘制位图--BeginPaint()与GetDC()的区别

    //======================================================================== //TITLE: //    EVC绘制位图--B ...

  9. BeginPaint和GetDC有什么区别

    windows编程问题 第一种情况显示出来的字很正常. case WM_PAINT: gdc = BeginPaint (hwnd, &ps); TextOut (gdc, 0, 0, s, ...

最新文章

  1. 机器学习与高维信息检索 - Note 3 - 逻辑回归(Logistic Regression)及相关实例
  2. python打印倒等腰梯形,Linux使用shell脚本做的菱形等一些益智题
  3. 【数据结构与算法】之深入解析“分发糖果”的求解思路与算法示例
  4. Python基础学习总结、学习展望
  5. 第八次立会顺利召开!
  6. iis 7 安装php环境_iis7配置php环境图文教程
  7. 如何在右键新建中添加新建xmind文件
  8. 阿里字体图标库的使用
  9. redis管理_Redis 桌面管理工具Redis Desktop Manager
  10. 计算机编程导论python程序设计答案-计算机科学与Python编程导论_学堂云答案
  11. 创建快捷方式以轻松查看Windows剪贴板
  12. 河海大学计算机与信息科学,刘凡 - 河海大学 - 计算机与信息学院
  13. java 如何实现多条件筛选,JAVA-日常工作解决的bug2-多选条件筛选
  14. Anchor Base 和 Anchor Free
  15. 还是学生的时候 想着存些对我有用 的url
  16. cortex m3/m4处理器的复位设计
  17. android 设置背景ah,Ahjesus,
  18. 光场相机模拟程序解读
  19. ARM 汇编的操作 设置CPU寄存器BASEPRI
  20. 关于Mac 下载vscode 过于缓慢的解决办法,亲测有效

热门文章

  1. liberty | 在IDEA整合Springboot与IBM liberty
  2. 一加6安装android,如何在一加6或6T上安装Android Q Beta
  3. Mysql using 用法
  4. 经典英文电影台词~有必要都背下来,英语会很强悍~
  5. 【纪中集训2019.3.25】芬威克树
  6. 东星医疗通过注册:上半年营收2亿 苏州济峰与平安基金是股东
  7. win10系统设置--应用和功能,怎么清除列表中已经卸载的软件?
  8. static作用(修饰函数、局部变量、全局变量)
  9. 男孩子学管理好还是计算机好,2020年男孩子学什么专业好
  10. 干货|安服工程师技能手册详细总结