在case之间架上break;
另外你是否重载了OnOK没有Call CDialog::OnOK();

解决方案 »

  1.   

    在每个case分支的最后要加上break;否则会继续执行下一个case中的语句。
      

  2.   

    必须重载CDialog::OnOK();么??
    让我试试!!
    let me try!!!
      

  3.   

    case 1: 
    {
       OnParaXitong();
             SetScrollSizes(MM_TEXT,CSize(chang,kuan));
    pDC->MoveTo(100,100);
               pDC->LineTo(600,100);
    }
             break; case 2:
    {
              pDC->MoveTo(100,300);
                pDC->LineTo(600,300);
    }
    }
    break;default:
    break;
    你好像没有break语句.
      

  4.   

    不小心农乱的!
    那么我的第2个问题呢??
    我把代码再写一遍!!
    int CInputDlg::ReturnVal()//自己定义的一个新类用于返回滚动条区域的大小
    {

    if(DoModal()==IDOK)
    {
    return m_iChang,m_iKuan;
    }

    }
    void CMyView::OnDraw(CDC* pDC)
    {
    CPingTaiDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here
        switch (huatu)  //定义在CMyView中的一个全局变量
    huatu  //定义的一个全局变量
    {
    case 1: 
    {
             OnParaXitong();
             SetScrollSizes(MM_TEXT,CSize(chang,kuan));
             pDC->MoveTo(100,100);
              pDC->LineTo(600,100);
    }
    case 2:
    {
    pDC->MoveTo(100,300);
               pDC->LineTo(600,300);
    }
    }
    }
    void CPingTaiView::OnParaXitong()
    {
        CInputDlg para2;
        para2.ReturnVal();
        chang=para2.m_iChang;
        kuan=para2.m_iKuan;
    }
    void CMyView::OnHctu() 
    {
    // TODO: Add your command handler code here
        huatu=1;
        InvalidateRect(NULL,TRUE);
    }void CPingTaiView::OnHcsy() 
    {
    // TODO: Add your command handler code here
        huatu=2;
        InvalidateRect(NULL,TRUE);
    }
    OnHctu()和OnHcsy()分别对应着两个菜单绘出图形和时域信号,
    现在好了么??
    CDialog::OnOK();应该放在那,是我定义的新类中CInputDlg中么??
    具体写法怎样呢??
      

  5.   

    if(DoModal()==IDOK)
    {
                       CDialog::OnOK();
    return m_iChang,m_iKuan;
    }

      

  6.   

    ANYTHING ELSE>????
    I WANT TO KNOW!!
      

  7.   

    在你想关闭Dialog的地方调用Cdialog::OnOK();
      

  8.   

    在你想关闭Dialog的地方调用CDialog::OnOK() or OnCancel();
      

  9.   

    这样做是不行的!!
    当我在
    return m_iChang,m_iKuan;
    后面加上
    CDialog::OnOK() 
    之后,对话框还是不会消失!!
    一直在那呆着!!
    有没有别的办法呢??
      

  10.   

    必须在Return之前调用OnOK,否则不会执行的!
      

  11.   

    帮忙吧!!
    help!!!
    help1!!
    help!!!!
      

  12.   

    正如cajon所说,return 后面的语句怎么还会执行到!
      

  13.   

    我的程序是
    基于SDI的!!
    别的,我的计算机装的是
    win2000 professional!
    别的没有事么了??
      

  14.   

    你是否重载了对话框的OnOK()函数 ,而在其内部美调用CDialog::OnOK();