我继承的CDialog类,使用DoModal显示对话框,为什么对话框显示的时候,主界面不动了。我的主界面是做的线程同步,有一个线程一直接收设备信息,存到缓冲,设置了一个timer,每个一秒读一个数据,显示到主界面。还有,为什么我在主界面上加一个按钮,显示版本信息,版本信息也是使用我自己写的对话框类,为什么版本信息不影响我的主界面显示?

解决方案 »

  1.   

    DoModal显示对话框
    这个是模态对话框 ,是指在用户想要对对话框以外的应用程序进行操作时,必须首先对该对话框进行响应。
    模态对话框垄断了用户的输入。当一个模态对话框打开时,用户只能与该对话框进行交互,而其他用户界面对象收不到输入信息。如果你希望其他对话框也可以操作,你可以用非模态对话框
    不要DoModal,改为ShowWindow(SW_SHOW);
      

  2.   

    非模态对话框CTestDlg *pDlg=new CTestDlg;
    pDlg->Create(IDD_TESTDLG,this);
    pDlg->ShowWindow(SW_SHOW);