CTestDlg dlg;
  if(IDOK==dlg.DoModal())
  {
  this->a1=dlg.strtextck;
  }
只有当按下IDOK时候,退出模态对话框后,才能将对话框的变量strtextck传给VIEW类中a1.请问,我现在想不退出,即不按下IDOK,而按下例如IDC_BUTTON1时候,将变量传a1.请问有这类的方法吗?

解决方案 »

  1.   

    你这段代码在什么类中?
    可以将这个类的指针对象在创建dlg时传递给CTestDlg,然后在对话框类中给这个指针对象的a1赋值
      

  2.   

    代码在view类中,我现在是,按下视图类中的按钮,出现一个模态对话框,对话框中有一按钮button1。点击,将话框中的变量值strtextck传给view类中的a1,而不是按下IDOK,退出模态对话框后才传给a1(界面的要求,因为按下IDOK后,模态对话框消息,但是还是有一些数据需要监视)
      

  3.   

    模态对话框消失,打错字,SORRY
      

  4.   

    是这样的,我开始的时候是用的自定义消息,strtextck是取combobox的值,按下button发送消息到视图类,将strtextck附给a1...但是我发现无论对话框中combobox的值如何变。a1的值都是0。所以不得已才用这个方法。 。void CCangKu1Dlg::OnButton3() 
    {
    AfxMessageBox("通风命令已保存");
    // TODO: Add your control notification handler code here
    CMainFrame* frm=(CMainFrame*)AfxGetApp()->m_pMainWnd; 
    CTestView* pView=(CTestView*)frm->GetActiveView(); if(BST_CHECKED==((CButton*)GetDlgItem(IDC_RADIO1C))->GetCheck())
    {
    pView->SendMessage(WM_WSD,0,0);
    }
    }void  CTestView::OnWsd()
    {
    CTestDlg  dlg;
    a1=dlg.strtextck;
    }
      

  5.   

    上面是我使用消息的方法,strtextck的值始终为0,实际应该是combobox的值。
      

  6.   

    吐血,你居然写出这样的代码:
    void CTestView::OnWsd()
    {
    CTestDlg dlg;
    a1=dlg.strtextck;
    }
    绝品阿。此dlg非彼dlg,你懂不?
    做如下修改:
    pView->SendMessage(WM_WSD,0,(LPARAM)&strtextck);void CTestView::OnWsd(WPARAM wParam,LPARAM lParam)
    {
      a1 = *(CString*)lParam;
    }
      

  7.   

    顺便问下版主哈。比如我有这样一个类TestDlg,有一变量n在视图类中这样获取TestDlg类的变量(比如n)是不对的吗  
    TestDlg  dlgdlg.n=
      

  8.   

    当然不行了。你先理解类和对象的区别吧。再说一遍,此dlg非彼dlg。打个比方,假设两个人都叫张三,你说他们是同一个人吗?他们的身高一定相同吗?