Mfc 在一个接一个显示的两个对话框之间闪烁

Mfc 在一个接一个显示的两个对话框之间闪烁,mfc,Mfc,问题是,在dlg1返回后,在dlg2显示之前会短暂显示父对话框,从而导致闪烁。这是不可取的,我怎样才能摆脱它?我在上面的函数中使用了SetRedraw(FALSE),但没有帮助。在资源编辑器中,转到CMyDialog1的属性,并使dlg1最初不可见 当您准备好显示dlg1时,使用。连续显示两个对话框听起来像是一个不太理想的设计决策。如果用户需要与分布在不同对话框上的数据进行交互以完成任务,则应考虑使用向导来代替。这种闪烁是不容易防止的。当第一个对话框关闭时,父窗口被激活,这将导致绕过消息队列的重

问题是,在dlg1返回后,在dlg2显示之前会短暂显示父对话框,从而导致闪烁。这是不可取的,我怎样才能摆脱它?我在上面的函数中使用了
SetRedraw(FALSE)
,但没有帮助。

在资源编辑器中,转到CMyDialog1的属性,并使dlg1最初不可见


当您准备好显示dlg1时,使用。

连续显示两个对话框听起来像是一个不太理想的设计决策。如果用户需要与分布在不同对话框上的数据进行交互以完成任务,则应考虑使用向导来代替。这种闪烁是不容易防止的。当第一个对话框关闭时,父窗口被激活,这将导致绕过消息队列的
重画窗口
调用。此行为无法轻易更改。@IIInspectable您是对的,向导更适合此操作,但我不能使用它,因为它需要在我的应用程序中动态调整属性表/页的大小。
CMainDialog::DoSomething()
{    
    CMyDialog1 dlg1;
    dlg1.DoModal();

    CMyDialog2 dlg2;
    dlg2.DoModal();
}