我重写了OK按钮的函数。并添加了下面的代码 把CDialog::OnOK()注释
我的程序有三个编辑框 我希望按按回车键可以 焦点可以到下一个编辑框中  
可是我如下设置不能够改变啊 但是这个一定是可以用的  可能我有些地方没有设置 或者属性中的选项没有勾选
我已经将MultiLine改为TEUE了,可是还是不可以用void CTestDlg::OnOK()
{
// TODO: 在此添加专用代码和/或调用基类

GetNextDlgTabItem(GetFocus())->SetFocus();
//CDialog::OnOK();
}请高手帮忙啊 谢谢

解决方案 »

  1.   

    区分两种情况:
    模态modal对话框:当按下enter时,系统自动调用OnOK或默认Button处理
    非模态对话框:可以使用WM_NEXTDLGCTL
      

  2.   

    实现肯定没问题哦~看看GetNextDlgTabItem是否正确获得控件,
    还有onok函数的触发……
      

  3.   

    我在PreTranslateMessage中GetNextDlgTabItem(GetFocus())->SetFocus()可以用这个

    if(pMsg -> wParam == VK_RETURN)
    {
         if(GetFocus()->IsKindOf(RUNTIME_CLASS(CButton)))//判断获得的是不是按钮时,这里总是返回0,为什么啊
         {
              GetFocus()->SendMessage(WM_LBUTTONDOWN,0,0);
      GetFocus()->SendMessage(WM_LBUTTONUP,0,0);
         }
         else
              GetNextDlgTabItem(GetFocus())->SetFocus(); 

    return TRUE;
      

  4.   

    控件有一个TAB顺序的吧。。去看看那个。
      

  5.   

    看看焦点跑到哪个控件上,看下tab顺序就知道了
      

  6.   

    我的TAB顺序就是按照我想要的顺序   第一是我输入的编辑对话框 第二个是下一个对话框
      

  7.   

    void CHaHa::OnOK() 

    CWnd* pWndNext = GetNextDlgTabItem(GetFocus()); 
    if (pWndNext) 

      pWndNext->SetFocus(); 

    }