当调用 CWnd::GetDC() 返回 nullptr 时,是否需要以 nullptr 作为参数来调用 CWnd::ReleaseDC()?

问题描述 投票:0回答:1

当你有一个从 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) ?

c++ windows winapi mfc cwnd
1个回答
0
投票

该函数的 MS 文档说

如果函数失败,返回值为NULL。

所以不,如果它应该返回 nullptr 那么你就没有有效的 DC 可以释放。

© www.soinside.com 2019 - 2024. All rights reserved.