【问题标题】:Assertion fail with GetDC() (using mfc)GetDC() 断言失败(使用 mfc)
【发布时间】:2013-11-27 15:20:57
【问题描述】:

所以,我不断收到断言失败:

_AFXWIN_INLINE CDC* CWnd::GetDC()
    { ASSERT(::IsWindow(m_hWnd)); return CDC::FromHandle(::GetDC(m_hWnd)); }

而且我检查了调用堆栈,上面方法之前调用的方法是:

CDC *pDC = GetDC();

我不确定其中有什么问题,但我需要一些帮助。谢谢!

【问题讨论】:

  • 你能多发一点上下文吗?看起来m_hWnd 很糟糕,但没有看到它是如何创建的,所以这只是一个猜测。
  • 已经有一段时间了,但如果我没记错的话,如果您在 OnPaint 中获取 DC,则需要创建一个 CPaintDC。但是在调用 GetDC 时需要更多上下文
  • @Servé CPaintDC 是一种便利,而不是必需品。不需要任何应用程序来实例化 CPaintDC

标签: c++ mfc


【解决方案1】:

如果你得到这个断言,你就可以使用 CWNd::GetDC 函数而没有创建窗口。或者窗口已经被破坏了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多