关于DC的使用不是很明白,到底创建的DC需不需要释放?这段代码是将左上角复制到程序的view里面显示,短暂运行程序没有问题。如果长时间运行,内存会不会有问题? HDC hDC = ::GetDC(NULL);
CDC *dc = CDC::FromHandle(hDC); pDC->BitBlt(0,0,260,60,dc,0,0,SRCCOPY); dc->Detach();
DeleteObject(hDC);可以写成这样吗?省略掉后面的释放。 pDC->BitBlt(0,0,260,60,CDC::FromHandle(::GetDC(NULL)),0,0,SRCCOPY);上面简化的写法正确吗?
CDC *dc = CDC::FromHandle(hDC); pDC->BitBlt(0,0,260,60,dc,0,0,SRCCOPY); dc->Detach();
DeleteObject(hDC);可以写成这样吗?省略掉后面的释放。 pDC->BitBlt(0,0,260,60,CDC::FromHandle(::GetDC(NULL)),0,0,SRCCOPY);上面简化的写法正确吗?
否则会有GDI句柄泄漏,最后程序就崩溃了
每次执行的时候,都会分配不同的内存空间
久而久之,……
==============
这样肯定不行啊,hDC和pDC类指针没有关联啊,CDC *dc = CDC::FromHandle(hDC);是将GetDC得到的HDC对象关联到pDC上去的,这个不能少的。
至于代码,你自己第一次写的就是正确的,你还要什么代码啊?