1.this->GetDC()->m_hDC
2.HBITMAP hBmp
3.m_pScreenDC->Attach(::GetDC(NULL))中的(::GetDC(NULL))
4.fun(CDC* pDC)中的局部(CDC* pDC)
5.CDC memDC;memDC.CreateCompatibleDC(pDC)中的memDC
综合以上5种情况哪个应该释放,哪个不用释放,每个奉献10分,希望高手说说原因
2.HBITMAP hBmp
3.m_pScreenDC->Attach(::GetDC(NULL))中的(::GetDC(NULL))
4.fun(CDC* pDC)中的局部(CDC* pDC)
5.CDC memDC;memDC.CreateCompatibleDC(pDC)中的memDC
综合以上5种情况哪个应该释放,哪个不用释放,每个奉献10分,希望高手说说原因
============
这个相当于调用了GetDC,应该调用ReleaseDc释放。
2.HBITMAP hBmp
=============
这个不用的释放的。
3.m_pScreenDC->Attach(::GetDC(NULL))中的(::GetDC(NULL))
===============
GetDC必须要和ReleaseDc配对
4.fun(CDC* pDC)中的局部(CDC* pDC)
===================
这个pDC如果是new出来的,那么要调用delete释放
5.CDC memDC;memDC.CreateCompatibleDC(pDC)中的memDC
=============
这个不用的。
==========
ReleaseDC在调用时并不用DC做参数啊,第一个可以写成:this->ReleaseDC();
m_pScreenDC->Attach(::GetDC(NULL))中的(::GetDC(NULL))这个GetDC实际上是有一个变量的,它已经被关联到m_pScreenDC中了。就相当于是m_pScreenDC->m_hDC.还有第四个DC是用的CPaintDC dc(this);如何释放?请指教
=======
这个不用释放的,因为dc这个变量在函数结束时会调用CPaintDC的析构函数,自己释放的。