CMainDialog::DoSomething()
{
CMyDialog1 dlg1;
dlg1.DoModal();
CMyDialog2 dlg2;
dlg2.DoModal();
}
Проблема заключается в том, что после возвращения dlg1 родительский диалог кратковременно отображается до отображения dlg2, вызывающего мерцание. Это нежелательно, как я могу избавиться от этого? Я использовал SetRedraw(FALSE)
в вышеуказанной функции, но это не помогло.Мерцание между двумя диалоговыми окнами, отображаемыми один за другим
Отображение двух диалогов подряд звучит как менее оптимальное дизайнерское решение. Если пользователю необходимо взаимодействовать с данными, которые распространяются в разных диалоговых окнах, чтобы выполнить задачу, вы должны рассмотреть возможность использования мастера. Мерцание не может быть легко предотвращено. Когда первое диалоговое окно закрывается, родительское окно активируется, что приводит к вызову 'RedrawWindow', который обходит очередь сообщений. Это поведение не может быть легко изменено. – IInspectable
@ Изначально вы правы, мастер больше подходит для этого, но я не могу его использовать, потому что динамический размер страницы свойств/страниц, которые он должен иметь в моем приложении. – zar