C++ 使用GetDC()断言失败(使用mfc)

C++ 使用GetDC()断言失败(使用mfc),c++,mfc,C++,Mfc,因此,我不断得到一个断言失败: _AFXWIN_INLINE CDC* CWnd::GetDC() { ASSERT(::IsWindow(m_hWnd)); return CDC::FromHandle(::GetDC(m_hWnd)); } 我检查了调用堆栈和在上述方法之前调用的方法: CDC *pDC = GetDC(); 我不确定这有什么问题,但我想得到一些帮助。谢谢 如果得到此断言,则使用CWNd::GetDC函数而不创建窗口。或者窗户已经被破坏了 你能再贴一点上下文吗?看

因此,我不断得到一个断言失败:

_AFXWIN_INLINE CDC* CWnd::GetDC()
    { ASSERT(::IsWindow(m_hWnd)); return CDC::FromHandle(::GetDC(m_hWnd)); }
我检查了调用堆栈和在上述方法之前调用的方法:

CDC *pDC = GetDC();

我不确定这有什么问题,但我想得到一些帮助。谢谢

如果得到此断言,则使用CWNd::GetDC函数而不创建窗口。或者窗户已经被破坏了

你能再贴一点上下文吗?看起来
m_hWnd
很糟糕,但是没有看到它是如何创建的,这只是一个猜测。这已经有一段时间了,但是如果我没记错的话,如果你在OnPaint中获得DC,你需要创建一个CPaintDC。但是当你打电话的时候需要更多的上下文GetDC@Servé
CPaintDC
是一种方便,而不是必要。任何应用程序都不需要实例化
cpaindc