DialogBased程序
想连续显示两个不同对话框,不是同时,一个显示完后显示另一个
试着在CPrjApp::InitInstant()中
{
C111Dlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
}
{
C222Dlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
}
这样似乎不行.只有第一个能显示.有问题么?另外想在显示第一个对话框的同时执行一些程序,
应该把这些代码放在什么地方?
放到OnInitDialog return之前似乎执行代码的时候对话框还
没显示.难道要在这里新创建一个线程才行?

解决方案 »

  1.   

    用定时器可以实现,splash Dailog
      

  2.   

    模式对话框必须关掉之后才能显示下一个。
    通常是在OnInitialize()中执行操作,这个时候Dialog上的控件已经可以访问了;否则还是启一个线程吧
      

  3.   

    第一个对话框只有被关掉的时候DoModal才会返回啊.
    才会生成下一个对话框的实例啊
    那下一个对话框再domodal也没什么问题吧?
    可实际却不行啊
      

  4.   

    第一个对话框调用DoModal函数,此函数会调用DestroyWindow函数,DestroyWindow发送WM_DESTROY 和 WM_NCDESTROY消息,窗口内部调用PostQuitMessage函数设置QS_QUIT标志位。
    第二个窗口确实被创建、显示了,但是当它发现QS_QUIT标志位被设定便自动退出。
    QS_QUIT标志位是线程的队列状态标志中的一个,不属于窗口。