不好意思,我是个刚学vc的人,问的问题可能很可笑,不过我的程序是按书上写的,运行以后真的是没有办法在编辑框内键入任何东东,而且没有任何的错误提示,在按下esc以后,程序就关闭了,不知道是什么原因?帮我看看可以吗?谢谢!

解决方案 »

  1.   

    编辑框的属性被你选成只读了吧,按下esc后,自动调用CDialog::OnCancel(),所以会关闭,如果你没有重载OnOK(),那按Enter也会关闭窗口
      

  2.   

    那有没设成Disable, 或Styles中的Number有没选上,编辑框是灰色还是正常颜色的?
    重载OnCancel和OnOK,在对话框编辑器中双击你的OK和Cancel按钮就可以定义这两个函数。
      

  3.   

    没有设成Disable,Number到是没有选上,不过我选上Number也不行呀,而且我的两个按纽已经被我给删除了,怎么样重载呀?谢谢!!
      

  4.   

    我删除的是系统本身的带的两个按纽,就是一开始的OK和CANCE按纽。
      

  5.   

    看看这个函数:
    他把你的输入都变成" ",
    void CTestDlg::OnChangeTestEdit() 
    {
    UpdateData(true);
    CString UpperValue;
        UpperValue=m_TestEdit;
    UpperValue.MakeUpper();
    if (UpperValue=="PAINT")
    system("pbrush.exe");
    m_TestEdit=" ";
    UpdateData(false);
    if (UpperValue=="CACULATOR")
    system("cal.exe");
    ///////////////////////////////////////////
    m_TestEdit=" ";
    UpdateData(FALSE);  // 就是它干的,
    ////////////////////////////////////////////
        if (UpperValue=="EXIT")
           OnOK();
    // TODO: If this is a RICHEDIT control, the control will not
    // send this notification unless you override the CDialog::OnInitDialog()
    // function and call CRichEditCtrl().SetEventMask()
    // with the ENM_CHANGE flag ORed into the mask.

    // TODO: Add your control notification handler code here
    }