+ -
当前位置:首页 → 问答吧 → tab 和回车键的处理

tab 和回车键的处理

时间:2011-12-01

来源:互联网

一个登陆对话框有 用户名和密码两项


输入用户名后,按 回车或 tab , 可以跳到 密码文本框中。。。

当 在密码文本框中回车, 则 进行验证数据库。。。

如何实现???????



主要是 回车的处理

给个伪代码 谢谢了。。。。

作者: caddor2011   发布时间: 2011-12-01

C/C++ code
BOOL CXXDlg::PreTranslateMessage(MSG* pMsg)
{
 CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT_PASSWORD);
 ASSERT(pEdit && pEdit->GetSafeHwnd());
 if((pEdit->GetSafeHwnd() == pMsg->hwnd) && (WM_KEYDOWN == pMsg->message))
 {
  switch(pMsg->wParam)
  {
    case VK_RETURN:
          xxxx(); // Verify DB
       return TRUE;

    default:
       break;
  }
 }
 return CDialog::PreTranslateMessage(pMsg);
}

大致代码结构就是这样的。。。

作者: VisualEleven   发布时间: 2011-12-01

重载OnChar;
如果是回车,就 SetCursorPos /SetFocus

作者: agoago_2009   发布时间: 2011-12-01

C/C++ code
BOOL CLoginDlg::PreTranslateMessage(MSG* pMsg)
{
    if (pMsg->message == WM_KEYDOWN)
    {
        if (pMsg->wParam == VK_RETURN)
        {
            return TRUE; //屏蔽回车按键
        }
    }

作者: shen_wei   发布时间: 2011-12-01

你好


难点在于: 第一次是 调到密码文本框, 第二次是 验证!!!

如果 仅仅是增加变量的话,是无法是做到的。。

比如: 什么都不输入, 连续两次回车 有问题。。。。




引用 2 楼 agoago_2009 的回复:

重载OnChar;
如果是回车,就 SetCursorPos /SetFocus

作者: caddor2011   发布时间: 2011-12-01

响应回车键

作者: yisiyou   发布时间: 2011-12-01