MFC里CDC的一个问题
这样两种方式生成的DC{CDC*pMyDC=GetDC();CDC*pAnotherDC=newCDC;//若干代码}有什么差别?是否在最后都需要用delete删指针和用...
这样两种方式生成的DC
{
CDC *pMyDC = GetDC();
CDC *pAnotherDC = new CDC;
//若干代码
}
有什么差别?是否在最后都需要用delete删指针和用releaseDC()?
在网上看到有人说这种DC是局部变量会被自动销毁,不用releaseDC……
到底是怎么回事,请大虾们指点一下! 展开
{
CDC *pMyDC = GetDC();
CDC *pAnotherDC = new CDC;
//若干代码
}
有什么差别?是否在最后都需要用delete删指针和用releaseDC()?
在网上看到有人说这种DC是局部变量会被自动销毁,不用releaseDC……
到底是怎么回事,请大虾们指点一下! 展开
2个回答
展开全部
两者都获得了设备描述环境的句柄 经查MSDN 有下列语句:Unless the device context belongs to a window class, the ReleaseDC member function must be called to release the context after painting.意思是除非设备描述环境属于一个窗口类 否则都要调用ReleaseDC();查ReleaseDC之后又发现The application must call the ReleaseDC member function for each call to the GetWindowDC member function and for each call to the GetDC member function.意思是每次调用了GetDC或GetWindowDC之后都要调用它 第二种是创建了一个新对象并令pAnotherDC指向他 应该调用delete pAnotherDC;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询