Приложение кадра MFC не перекрашивается при покрытии или встряхивании - PullRequest
0 голосов
/ 03 июля 2018

Я создаю приложение на основе фреймов MFC для мониторинга / построения графиков / взаимодействия с несколькими дочерними окнами, размещенными в основном фрейме. Все эти дочерние окна создаются основным фреймом с использованием:

MakeCommandsWindow("Child Window",   
             WS_VISIBLE | WS_CHILD ,
            CommandsRect, this, NULL);

, который вызывает этого строителя:

BOOL Commands::MakeCommandsWindow(LPCSTR WindowTitle, DWORD dwStyle,
                  RECT& rect, CWnd* pParent, UINT nID){
CString CommandsWindowClass = AfxRegisterWndClass(
             CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW ,
             AfxGetApp()->LoadStandardCursor(IDC_ARROW));
CWnd::Create(CommandsWindowClass, WindowTitle, dwStyle,
             rect, pParent, nID);

Приложение работает хорошо, за исключением случаев обработки событий перерисовки. Когда приложение закрывается другим окном и открывается, оно не перерисовывается должным образом. Кроме того, он не максимизирует или не изменяет размер должным образом Насколько я понимаю, MFC автоматически отправляет сообщения перерисовки во время этих событий, и мне не нужно перехватывать эти сообщения. Я реализовал некоторые инструкции redraw () вручную после модальных диалогов, близких к решению некоторых из этих проблем, но я не знаю, как правильно решить эту более глубокую проблему, или какой аспект моего приложения неверен. Спасибо, любые советы приветствуются.

Редактировать: Перерисовка () упоминается: После закрытия диалога (охватывающего центральное окно) я говорю центральному окну перекрасить: PlotSettings Dlg; Dlg.DoModal (); MonitorWindow-> RedrawWindow ();

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