64,649
社区成员
发帖
与我相关
我的任务
分享
CDC::~CDC()
{
if (m_hDC != NULL)
::DeleteDC(Detach());
}
而且如果是GetDC得到的,释放对应的是ReleaseDC。
CPaintDC和CClientDC,自己看源码就知道是怎么回事了
CClientDC::CClientDC(CWnd* pWnd)
{
ASSERT(pWnd == NULL || ::IsWindow(pWnd->m_hWnd));
if (!Attach(::GetDC(m_hWnd = pWnd->GetSafeHwnd())))
AfxThrowResourceException();
}
CClientDC::~CClientDC()
{
ASSERT(m_hDC != NULL);
::ReleaseDC(m_hWnd, Detach());
}