为什么VC遍写的基于对话框程序,执行的时候,一按回车键就消失了,怎么解决?就是
按回车键程序不消失??

解决方案 »

  1.   

    这里是因为它默认的是OK时间 你对话框的上面应该友个OK的按键 你把里面的
    CDialog::ok()注销就可以了
      

  2.   

    删除OK按钮,或者重载OnOK()函数。
      

  3.   

    重载OnOK(),在CDialog::ok()前return 就可以了
      

  4.   

    删除ok键是没用的,重载OK函数怎么做?
      

  5.   

    你可以把你按钮上的OK按钮换一个ID名字.就可以了
      

  6.   

    说错了..你可以在pretran ..什么函数里面添加你的VK_Return.
      

  7.   

    按Enter键后,对话框关闭是因为缺省情况下“确定”是缺省按钮。而按Enter键后,系统会发送一个WM_COMMAND消息,此时有焦点的按钮相当于被点击了一下,因此就会出现你所说的情况。解决的方法:
    1、重新指定或不指定一个默认按钮,查看按钮的属性,其中有一个“Default Button”属性,去掉对号即可。但这种情况下,如果按Enter的话,有焦点的按钮对应的代码仍然会被调用。2、重载OnOk函数
    代码举例如下:
    // 在这里处理Enter消息
    void CDlgLogIn::OnOK() 
    {
    CWnd* pCtrl = GetFocus(); // 当前输入框
    CWnd* pCtrlNext = pCtrl; // 下一个输入框 int ctrlID = pCtrl->GetDlgCtrlID(); // 当前输入框ID
    switch (ctrlID)
    {
    case IDC_EDIT_USERCODE: // 将焦点移至密码输入框
    pCtrlNext = GetDlgItem(IDC_EDIT_USERPWD);
    // 设置焦点至下一个输入框
    pCtrlNext->SetFocus();
    break; default: // 验证密码
    OnButtonOK();
    break;
    }}
    这里处理的是,用户在一个登录对话框中输入用户名后,按Enter,光标转到密码输入框,再按Enter验证密码。这样做有两个前提:一是对话框中不能有ID_OK按钮(也就是缺省的“确定”按钮对应的ID,要改成别的ID,二是,不能有缺省按钮。希望能对你有帮助。
      

  8.   

    注销CDialog::Onok()就可以了
    //CDialog::OnOk();
      

  9.   

    因为'ok'button的tab是第一,你只要按住Ctrl+d,在其他按钮上点一下就行
      

  10.   

    因为'ok'button的tab是第一,你只要按下Ctrl+d,在其他按钮上点一下就行
      

  11.   

    可以修改默认按钮或是去掉CDialog::OnOK().
      

  12.   

    按Enter键后,对话框关闭是因为缺省情况下“确定”是缺省按钮。而按Enter键后,系统会发送一个WM_COMMAND消息,此时有焦点的按钮相当于被点击了一下,因此就会出现你所说的情况。解决的方法:
    1、重新指定或不指定一个默认按钮,查看按钮的属性,其中有一个“Default Button”属性,去掉对号即可。但这种情况下,如果按Enter的话,有焦点的按钮对应的代码仍然会被调用。2、重载OnOk函数
    3、你只要按住Ctrl+d,在其他按钮上点一下就行
      

  13.   

    首先, 你要明白, 按下Enter 键,vc调用了默认的 CDialog::OnOK()函数, 使之出现了这种情况,解决办法:用 ClassWizard中的ObjectID中选ID_OK, 然后在Messages中选BK_CLICK,OK。把原来的OnOk()函数中的CDialog::OnOk()去了, 但要保留原来的OnOk函数。OK!!!!!!!
      

  14.   

    处理PreTranslateMessage.
    BOOL CxxxDlg::PreTranslateMessage(MSG* pMsg) 
    {
        if(pMsg->message ==WM_KEYDOWN)
        {
             if(pMsg->hwnd==CButton1.GetSafeHwnd ())
             {
                  ....
             }
        }
      }
      return CDialog::PreTranslateMessage(pMsg);
    }