码迷,mamicode.com
首页 > 其他好文 > 详细

hdc cdc

时间:2015-12-15 01:01:15      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:

 

 

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

标签:

原文地址:http://www.cnblogs.com/okgogo2000/p/5046823.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!