CWindowDC dc(this);
HDC hdc=dc.GetSafeHdc();
using namespace Gdiplus;
Graphics graphics(hdc);
graphics.SetSmoothingMode(SmoothingModeHighQuality);

Pen newPen(Color(0,200,255),5);
graphics.DrawLine(&newPen, 50, N1, x2, y2);

ps:析构函数中什么也没有。

RE:

GetDC/GetSafeHdc需要调用ReleaseDC来释放:   ::ReleaseDC(m_hWnd,hdc);

gdi+的资源new要对应delete(gdi的资源createxxx对应DeleteObject)
Pen = new Pen(Color(0,200,255),5);
delete Pen;
Pen = NULL;

-----------------------------------------------

CDC *pDC = GetDlgItem(IDC_WAVEFORM)->GetDC();
HDC hdc = pDC->GetSafeHdc(); if(!ReleaseDC(pDC) )//成功
{
printf("1 error code:%d\n",GetLastError());
} if(!DeleteObject(hdc))
{
printf("2 error code:%d\n",GetLastError());//失败 返回:6
}

请问在这里 pDC和hdc 都需要释放吗?还是只释放pDC,应该怎么去理解?

RE:
ReleaseDC(pDC)就行了,在Release(pDC)的过程中,会DeleteObject掉和pDC相关联的HDC的。

http://bbs.csdn.net/topics/390921040

http://bbs.csdn.net/topics/340265147

hdc cdc的更多相关文章

  1. CDC和HDC的区别与转换

    CDC和HDC的区别与转换 一.区别与联系HDC是句柄:CDC是MFC封装的Windows   设备相关的一个类:CClientDC是CDC的衍生类,产生对应于Windows客户区的对象HDC是WIN ...

  2. VC++ 中CDC与HDC的区别以及二者之间的转换

    MFC类的前缀都是C开头的  H开头的大多数是句柄  这是为了助记,是编程读\写代码的好的习惯.  CDC中所有MFC的DC的基类.常用的CClientDC dc(this);就是CDC的子类(或称派 ...

  3. VC中CDC与HDC的区别以及二者之间的转换

    CDC是MFC的DC的一个类 HDC是DC的句柄,API中的一个类似指针的数据类型. MFC类的前缀都是C开头的 H开头的大多数是句柄 这是为了助记,是编程读\写代码的好的习惯. CDC中所有MFC的 ...

  4. 【转】HDC,CDC,CWindowDC,CClientDC,CPaintDC等等

     转载出处:http://blog.sina.com.cn/s/blog_447611f20100lirt.html 首先说一下什么是DC(设备描述表) Windows应用程序通过为指定设备(屏幕,打 ...

  5. VC/MFC的HDC,CDC,CWindowDC,CClientDC,CPaintDC详解:

    VC/MFC的HDC,CDC,CWindowDC,CClientDC,CPaintDC详解: 首先说一下什么是DC(设备描述表) 解:Windows应用程序通过为指定设备(屏幕,打印机等)创建一个设备 ...

  6. HDC与CDC相互转换

    转自loop_k原文 HDC与CDC相互转换 概念 首先说一下什么是DC(设备描述表):Windows应用程序通过为指定设备(屏幕,打印机等)创建一个设备描述表(Device Context, DC) ...

  7. CDC与HDC的区别以及相互转换

    CDC是MFC的DC的一个类  HDC是DC的句柄,API中的一个类似指针的数据类型.  MFC类的前缀都是C开头的  H开头的大多数是句柄  这是为了助记,是编程读\写代码的好的习惯.  CDC中所 ...

  8. DC、CDC及CDC的各个子类

      设备描述表是一个包含设备信息的结构体(物理设备如显示器.打印机),MFC中关于图像操作都需要DC来完成.HDC是Windows的一种数据类型,是设备描述句柄:CDC是MFC封装的Windows 设 ...

  9. Camel、Pastal、匈牙利标记法

    原来我一直用的是Camel标记法……收藏学习了. */       Camel标记法采用首字母小写,接下来的单词都以大写字母开头的方法,如myName.       Pastal标记法采用首字母大写, ...

随机推荐

  1. c# 作业1

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. Burp Suite使用介绍

    Burp Suite使用介绍(一)  22人收藏 收藏 2014/05/01 19:54 | 小乐天 | 工具收集 | 占个座先 Getting Started Burp Suite 是用于攻击web ...

  3. throw和throw ex的区别

    之前,在使用异常捕获语句try...catch...throw语句时,一直没太留意几种用法的区别,前几天调试程序时无意中了解到几种使用方法是有区别的,网上一查,还真是,主要是区别在堆栈信息的起始点不同 ...

  4. WPF如何实现拖拽打开文件(将文件拖进窗体打开)

    在WPF中的实现和WinForm中的实现99%相似,将要实现接受拖拽释放的控件添加DragEnter事件和Drop事件,本例中控件Grid grid作为接受控件,添加事件操作如下: private v ...

  5. 简单几何(线段与直线的位置) POJ 3304 Segments

    题目传送门 题意:有若干线段,问是否存在一条直线,所有线段投影到直线上时至少有一个公共点 分析:有一个很好的解题报告:二维平面上线段与直线位置关系的判定.首先原问题可以转换为是否存在一条直线与所有线段 ...

  6. POJ1204 Word Puzzles(AC自动机)

    给一个L*C字符矩阵和W个字符串,问那些字符串出现在矩阵的位置,横竖斜八个向. 就是个多模式匹配的问题,直接AC自动机搞了,枚举字符矩阵八个方向的所有字符串构成主串,然后在W个模式串构造的AC自动机上 ...

  7. cocos 帧率测试

    有人说导致cocos2dx 帧率下降的是getPosition,我测试以后发现并不是这样的. local MainScene = class("MainScene", functi ...

  8. BZOJ 1001 & SPFA

    1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec  Memory Limit: 162 MB Description 现在小朋友们最喜欢的"喜羊羊与灰太狼 ...

  9. 最大权闭合图 && 【BZOJ】1497: [NOI2006]最大获利

    http://www.lydsy.com/JudgeOnline/problem.php?id=1497 最大权闭合图详细请看胡伯涛论文<最小割模型在信息学竞赛中的应用>,我在这里截图它的 ...

  10. NodeJS中form上传附件中针对表单的multiple attribute出现的问题总结

    在express中上传附件需要在表单中添加enctype="multipart/form-data"属性,并且在新的4.0.1版本中需要手动添加中间件app.use(connect ...