Visual c++ 在VC6-MFC中按ENTER键时的制表符效果

Visual c++ 在VC6-MFC中按ENTER键时的制表符效果,visual-c++,mfc,visual-c++-6,Visual C++,Mfc,Visual C++ 6,我想在多个文本框上实现TAB效果。在文本框中输入值,然后按enter键时,焦点应自动移动到下一个文本框(与按文本框中带焦点的TAB键相同)。目前,我正在尝试在PreTranslateMessage()中使用这段代码: 上面的代码将焦点推到下一个即时文本框(即。 它向前移动了2个选项卡)共有20个文本框,全部取自CEdit,并且都只接受数值 如何检索每个文本框的ID?我尝试分配CEdit(控制变量)并访问每个文本框的ID,然后通过switch case语句检查哪个文本框处于活动状态,然后将focu

我想在多个文本框上实现TAB效果。在文本框中输入值,然后按enter键时,焦点应自动移动到下一个文本框(与按文本框中带焦点的TAB键相同)。目前,我正在尝试在PreTranslateMessage()中使用这段代码:

上面的代码将焦点推到下一个即时文本框(即。 它向前移动了2个选项卡)共有20个文本框,全部取自CEdit,并且都只接受数值

如何检索每个文本框的ID?我尝试分配CEdit(控制变量)并访问每个文本框的ID,然后通过switch case语句检查哪个文本框处于活动状态,然后将focus()设置为下一个即时文本框(所有这些都在PreTranslateMessage()中)。但即使这样也不行


请建议一种方法让它工作。由于我是一名新手,请让我详细了解流程/代码。

这应该可以满足您的要求:

BOOL CMyDialog::PreTranslateMessage(MSG* pMsg )
{
    if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN)
    {
        CWnd* pFocus = GetFocus();
        if (pFocus && pFocus->IsKindOf(RUNTIME_CLASS(CEdit)))
        {
            NextDlgCtrl();
            return TRUE;
        }
    }


    return CDialog::PreTranslateMessage(pMsg);
}

谢谢你的回答…很抱歉回复晚了…我会执行此操作并返回…再次感谢
BOOL CMyDialog::PreTranslateMessage(MSG* pMsg )
{
    if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN)
    {
        CWnd* pFocus = GetFocus();
        if (pFocus && pFocus->IsKindOf(RUNTIME_CLASS(CEdit)))
        {
            NextDlgCtrl();
            return TRUE;
        }
    }


    return CDialog::PreTranslateMessage(pMsg);
}