发生错误的一种可能的原因:
程序中申请了DC的指针:
CDC* pDC = this->GetDC();
在使用完后调用了删除函数:
pDC->DeleteDC();
问题在这儿,在获取的对象的DC后,不要轻易使用用删除函数,应改成:
ReleaseDC(pDC);
程序中申请了DC的指针:
CDC* pDC = this->GetDC();
在使用完后调用了删除函数:
pDC->DeleteDC();
问题在这儿,在获取的对象的DC后,不要轻易使用用删除函数,应改成:
ReleaseDC(pDC);
除非是自己创建的DC,否则不要删除,发生这类错误一般很难定位。
解决 pDC->DeleteDC(); 的地方都改成 ReleaseDC(pDC);

本文讨论了在程序中不当使用DC(设备上下文)指针引发的问题及解决方案。重点介绍了如何避免使用DeleteDC()导致的错误,并给出了正确的释放DC资源的方法——使用ReleaseDC()函数。
5185

被折叠的 条评论
为什么被折叠?



