2013-11-27 2 views
0

Таким образом, я получаю утверждение неудачи:Assertion неудачи с GetDC() (с использованием ок)

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

И я проверил стек вызовов и метод вызывается перед методом выше:

CDC *pDC = GetDC(); 

Я не уверен, что не так с этим, но мне нужна помощь. Благодаря!

+0

Можете ли вы опубликовать немного больше контекста? Похож, что 'm_hWnd' плохой, но не видя, как он был создан, и это просто предположение. –

+0

его было немного, но если я правильно помню, если вы получаете DC в OnPaint, вам нужно создать CPaintDC. Но нужно больше контекста, когда вы вызываете GetDC – Laurijssen

+0

@ Servé 'CPaintDC' - это удобство, а не необходимость. Никакое приложение никогда не требуется для создания «CPaintDC». – IInspectable

ответ

1

Если вы получаете это утверждение, вы используете функцию CWNd :: GetDC без создания созданного окна. Или окно уже уничтожено.

Смежные вопросы