将局部变量hdc传给种成员保存使用//为什么可以?

将局部变量hdc传给类成员保存使用//为什么可以???

局部变量不是函数调用完,资源 地址就释放了吗???

BOOL OnInitDialog()
{
     CRect rect;
     GetClientRect(rect);
     CDC *pdc = GetDC();
     CBitmap bmpBack;
     CBitmap* OldbmpBack;
     bmpBack.CreateCompatibleBitmap(pdc,rect.Width(),rect.Height());
     pdc ->SelectObject(&bmpBack);  
     //程序如此调用没问题;倘若,我换成局部变量,图片显示不到按钮上
      //CDC pWndDC;
     //pWndDC.CreateCompatibleDC(pdc);
     //OldbmpBack = pWndDC.SelectObject(&bmpBack); 
     Button.SetBack(pDC->m_hdc);//换成pWndDC.m_hdc;
     //pWndDC.SelecObject(OldbmpBack);
    
     pdc ->SelectObject(OldbmpBack);
     ReleaseDC(pDC);
}

void CButtonEx::SetBack(HDC hdc)
{
   memdc = hdc;//memdc成员变量
}

------解决方案--------------------
HDC就一句柄,一个数值而已
------解决方案--------------------
正确的方式是通过GetDC获取的,指针,所以有效,可以使用