当你有一个从 CWnd 派生的类对象,并且调用
object.GetDC()
,但它返回 nullptr 时,你还需要使用 nullptr 调用 object.releaseDC()
吗?
我有一个调用 GetDC 和 ReleaseDC 的函数:
CDC* const pDC = m_wndRibbonBar.GetDC();
if (!pDC)
{
return;
}
//... (draw some stuff here)
m_wndRibbonBar.ReleaseDC(pDC);
目前我没有任何问题,因为 GetDC() 总是返回一个有效的指针,但如果没有,我是否需要在提前返回之前使用 nullptr 调用 ReleaseDC(pDC) ?
该函数的 MS 文档说
如果函数失败,返回值为NULL。
所以不,如果它应该返回 nullptr 那么你就没有有效的 DC 可以释放。