Перерисовать окно клиента
Я хочу иметь возможность нажать кнопку в клиентской области и перерисовать клиентскую область.
Моя главная проблема заключается в том, что я не могу заставить его работать должным образом.
то, что я получаю, - это мерцание после нажатия кнопки.
Что я уже пробовал:
Я пытался.
void CButtonTestView::OnButtonClicked() { AfxMessageBox(L"Button clicked"); Clicked = TRUE; Invalidate(); UpdateWindow(); } void CButtonTestView::OnDraw(CDC* pDC) { CButtonTestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: add draw code for native data here pDC->TextOutW(800, 100, _T("Button test")); if (Clicked) { InvalidateRect(nullptr, TRUE); } }
visual studio 2017.
Любой вклад будет оценен по достоинству
Richard MacCutchan
Простой ответ заключается в том, что вы должны никогда вызов InvalidateRect
из вашего OnDraw
метод.