MFC调用GetDC()函数后哪些情况下需要释放DC?

我看MSDN上说的有些情况可以不用释放DC,就是该窗口拥有自己的DC的时候,不过这句话的意思我不太懂。... 我看MSDN上说的有些情况可以不用释放DC,就是该窗口拥有自己的DC的时候,不过这句话的意思我不太懂。 展开
 我来答
雷姬丶172
2014-04-26 · TA获得超过320个赞
知道答主
回答量:152
采纳率:86%
帮助的人:66.5万
展开全部
略... 下面用一些简单的代码看看如果使用这些类 HDC使用, 每次画线等操作都不MFC封装的类多了个HDC的参数 执行在哪个设备描述表操作 HDC hdc=::GetDC(m_hWnd);//m_hWnd == this->m_hWnd 即当前窗口句柄 MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL); LineTo(hdc,point.x,point.y); ::ReleaseDC(m_hWnd,hdc);//必须和GetDC配对 可以看到HDC的使用较麻烦, 而且如果::GetDC和::ReleaseDC不配对的话,会造成错误 CDC *pDC=GetDC(); pDC->MoveTo(m_ptOrigin); pDC->LineTo(point); ReleaseDC(pDC); CClientDC dc(this); dc.MoveTo(m_ptOrigin); dc.LineTo(point); CWindowDC dc(this); CWindowDC dc2(GetDesktopWindow());//获得整个桌面的句柄, 一些桌面特效程序使用 dc.MoveTo(m_ptOrigin); dc.LineTo(point); CPaintDC dc(this); dc.MoveTo(m_ptOrigin); dc.LineTo(point); 可以看到 MFC 的类使用方便很多, 因为它们都在构造函数和析构函数调用了响应的函数进行DC的获取和释放. 略...
求采纳
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式