本帖最后由 VisualEleven 于 2013-03-15 11:12:15 编辑

解决方案 »

  1.   

    你这个是模态对话框啊
    OnOK之后就结束了
    你要是想实现你的想法
    那你得用非模态对话框
    要用dlg.Create
    然后show的但建议你不要这么搞
    你可以给确定按钮加上界面控制
    如果没有输入的话,确定键就是灰色的
      

  2.   

    模态对话框就是这样,在DoModal()==OnOK之后就没有了你自己create出来吧,自己来控制窗口的生命周期
      

  3.   

    你这个例子太简单了,这样根本不能解决我的问题啊,我希望能够点击“确定”按钮,只是在弹出MessageBox时,窗口不关闭。
    你这个例子是连“确定”按钮都不能点击。不过还是谢谢你
      

  4.   

    IDD_DIALOG7对话框关联的类中添加IDOK的响应函数,在该响应函数中去做判断
      

  5.   

    在对话框中 ,处理 OnOK
      

  6.   

    int nret = dlg.DoModal(); //弹出对话框“IDD_DIALOG7”
    if(nret==IDOK) //点击"确定",当程序运行到这一步的时候,对话框已经关闭了。
    {
      UpdateData(FALSE);
     
      str.Format (_T("%s"),dlg.m_Mod_Name) ;
      if(str != "")
      {
        m_Edit_TData.SetItemText(nSelItem,0,str);//改该行名称
        strcpy_s(var[nSelItem], str);
      }
      else
      {
        MessageBox("变量名称不能为空!");
        return;//由于对话框已经关闭,所以返回就退出了当前函数,没有再次弹出对话款
      }
    }解决方案,推荐重载对话框的OnOK跟OnCancle函数,把判断内容放在弹出的对话框的代码中。