MFC GetDC () Ошибка подтверждения - «Не окно» - PullRequest
0 голосов
/ 13 июня 2018

Цель: нарисовать график в дочернем окне на статическом элементе управления plotScreen.Иногда график будет составлен из входящих данных, поэтому я рисую на совместимом DC, чтобы уменьшить мерцание.

Проблема: код работает правильно, чтобы нарисовать график в основном кадре, используя GetActiveWindow(), а затем GetDC(), но я не могу заставить программу распознавать дочернее окно или статический элемент управления как окно.

Строка, которая вызывает ошибку подтверждения:

CDC *pDC = plotScreen.GetDC();

Создание plotScreen:

plotScreen.Create("Gamma Playback", WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON | DT_CENTER, plotRect, thisParent, NULL);

Ошибка подтверждения:

ASSERT(::IsWindow(m_hWnd)); return CDC::FromHandle(::GetDC(m_hWnd)); }

Статика создается до вызова GetDC.

Редактировать: статика успешно создана, но уничтожена.Я попытался использовать new для размещения в куче, но он все еще уничтожен, прежде чем я смогу использовать его в более поздней функции.

1 Ответ

0 голосов
/ 13 июня 2018

Solution = получить указатель для окна, содержащего CStatic, во время OnCreate этого окна.Хранить в глобальной переменной.Используйте этот указатель, чтобы получить DC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...