Призрачное окно / растровое изображение сохраняется после закрытия окна - MFC SDI - PullRequest
0 голосов
/ 26 июня 2018

Среда: приложение SDI на основе кадров MFC Проблема: после закрытия модальных диалоговых окон растровое изображение остается отображенным / окно под ним не перерисовывается.

Создание диалога:

PortSettings Dlg; 
Dlg.DoModal();

Я пытался явно установить OnCancel() для диалогового класса,

void PortSettings::OnCancel()
{CDialog::OnCancel();}

попытался вызвать RedrawWindow из родительского окна и диалогового окна OnCancel.

Эта проблема возникает для всех диалоговых окон и других модальных окон, которые открываются (например, файловый браузер). Я предполагаю, что, поскольку я использую MFC, я каким-то образом вмешался в базовый Window Proc, но я не уверен, как исследовать или что попробовать.

1 Ответ

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

Решение было многогранным:

Свойства диалогового окна влияют на затянувшееся изображение - в моем случае необходимо было поменять диалоговую рамку на «тонкий» стиль.

После вызова Dlg.DoModal () вызовите ParentWnd-> RedrawWindow (). В OnPaint родительского окна я добавил fillSolidRect, чтобы перекрасить фон в белый цвет. Этот раздел управляется логической логикой, которая перерисовывается только сразу после закрытия диалога, чтобы избежать мерцания.

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