我在一个Dialog——a中又弹出一个模态的对话框——b,在对话框b没有关闭之前,为什么点击对话框a,有时对话框a能获得焦点,响应点击呢?有什么办法解决。
很急啊!请大家帮帮忙!

解决方案 »

  1.   

    我的代码:
    void ResultList::ListItem(NMHDR* pNMHDR, LRESULT* pResult)
    { GetDlgItem( IDC_RESULTLIST )->EnableWindow( FALSE );
    BeginWaitCursor(); if( …… )
    {
    CMsgDialog dlgMsg(this);
    dlgMsg.m_pSearchResultList = this; this->EnableWindow( FALSE );//当前对话框不可用 dlgMsg.DoModal();//弹出新对话框(新对话框用于信息提示,当显示内容读取结束,自动关闭该对话框,焦点转回到原对话框)
    this->EnableWindow( );                [
                     …… …… …… …… ……//内容读取显示代码,处理这部分代码需要一段时间,所以弹出上面的提示对话框
                     …… …… …… …… ……//销毁dlgMsg对话框代码
                                           “[]”中的代码在dlgMsg的函数中实现
                     ]
    }
    else
    {
    …… …… ……
    } EndWaitCursor();
    GetDlgItem( IDC_RESULTLIST )->EnableWindow(  );//恢复原对话框
    GetDlgItem( IDC_RESULTLIST )->SetFocus();
    GetDlgItem( IDC_TXTCONTENT )->EnableWindow(  );
    }
      

  2.   

    如果不要下面的呢?
    this-> EnableWindow(   FALSE   );//当前对话框不可用
      

  3.   

    我试了,去掉
    this->  EnableWindow(   FALSE   );//当前对话框不可用
    也不行。现在的情况是当弹出消息提示框(dialog---A)后,用户狂点弹出dialog---A的对话框---B时,一开始B对话框没有任何响应,但过了一会B对话框的标题就会显示“没有应答”,且标题变亮——获得了焦点。
    我在MSDN上看到关于模态对话框的说明,在该对话框没有销毁之前用户不能与其他对话框交互信息的,但不知为什么我们的程序现在在A对话框没有销毁之前就可以与其他对话框交互了。