将局部变量hdc传给种成员保存使用//为什么可以?
将局部变量hdc传给类成员保存使用//为什么可以???
------解决方案--------------------
HDC就一句柄,一个数值而已
------解决方案--------------------
正确的方式是通过GetDC获取的,指针,所以有效,可以使用
局部变量不是函数调用完,资源 地址就释放了吗???
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获取的,指针,所以有效,可以使用