对话框中设置一个文本框,用户输入文字后按确定退出,我将用户输入的内容存在内存中,并在对话框的OnKillActive()中处理,最后在OnOk()中写到文件中去。
OnKillActive()处理中若发现错误则报错:
if(i==0)
   MessageBox("error");
但随后应该禁止以后的处理,让焦点移到文本框中,让用户重新输入,请问如何实现?

解决方案 »

  1.   

    m_edit.sel(-1,0);
    m_edit.clear();
    m_edit.setfocus();
    -------------------------------------------
    大致如下,你可以参考msdn我手头暂时没有。
      

  2.   

    不要在OnKillActive()中处理,直接在OnOk()处理,如果出错直接返回,不要调用CDialog::OnOk
      

  3.   

    OnKillActive()
    {
     if(i==0)
     {
       MessageBox("error");
      return 0;
     }
     return TRUE;
    }
      

  4.   

    现在必须在OnKillActive()中处理,因为这是一个属性对话框,关系到属性页同步的问题!cadinfo(无语清风) 能再详细些吗?
      

  5.   

    if(i==0)
    {  
       if (MessageBox(NULL, "error", "hint", MB_OK ) == IDOK)
       {
            m_edit.SetWindowText("") ;
            m_edit.SetFocus() ;   
        }
    }