BOOL CPassWord::PreTranslateMessage(MSG* pMsg) 
{
// TODO: Add your specialized code here and/or call the base class
if((pMsg->message==WM_KEYDOWN||pMsg->message==WM_KEYUP)&&pMsg->wParam==VK_ENTER)   pMsg->wParam=VK_TAB;
return CDialog::PreTranslateMessage(pMsg);
}
我写了这几行代码,但是编译器提示有错误,它说VK_ENTER,VK_TAB没有定义,为什么啊???

解决方案 »

  1.   

    没有VK_ENTER,只有VK_RETURN。VK_TAB是有的
      

  2.   

    如果您要拦截 ENTER消息,请参考一下代码:
    主循环 是什么意思?你应该在PreTranslateMessage里处理发给窗口的消息。例如:
    BOOL CMyDlg::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if (pMsg->message == WM_KEYDOWN)
    {
    switch(pMsg->wParam)
    {
    case VK_ESCAPE:
    return TRUE;
    case VK_RETURN:
    return TRUE;
    default:
    break;
    }
    } return CDialog::PreTranslateMessage(pMsg);
    }以上代码用于处理拦截 ESC和ENTER的键盘消息
      

  3.   

    如果您要拦截 ENTER 消息,请参考以下代码:
    如果您要拦截 ENTER消息,请参考一下代码:
    主循环 是什么意思?你应该在PreTranslateMessage里处理发给窗口的消息。例如:
    BOOL CMyDlg::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if (pMsg->message == WM_KEYDOWN)
    {
    switch(pMsg->wParam)
    {
    case VK_ESCAPE:
    return TRUE;
    case VK_RETURN:
    return TRUE;
    default:
    break;
    }
    } return CDialog::PreTranslateMessage(pMsg);
    }以上代码用于处理拦截 ESC和ENTER的键盘消息
      

  4.   

    如果您要拦截ENTER等消息,请参考以下代码
    如果您要拦截 ENTER 消息,请参考以下代码:
    如果您要拦截 ENTER消息,请参考一下代码:
    主循环 是什么意思?你应该在PreTranslateMessage里处理发给窗口的消息。例如:
    BOOL CMyDlg::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if (pMsg->message == WM_KEYDOWN)
    {
    switch(pMsg->wParam)
    {
    case VK_ESCAPE:
    return TRUE;
    case VK_RETURN:
    return TRUE;
    default:
    break;
    }
    } return CDialog::PreTranslateMessage(pMsg);
    }以上代码用于处理拦截 ESC和ENTER的键盘消息
      

  5.   

    你应该在PreTranslateMessage里处理发给窗口的消息。例如: 
    BOOL   CMyDlg::PreTranslateMessage(MSG*   pMsg)   

    //   TODO:   Add   your   specialized   code   here   and/or   call   the   base   class 
    if   (pMsg-> message   ==   WM_KEYDOWN) 

    switch(pMsg-> wParam) 

    case   VK_ESCAPE: 
    return   TRUE; 
    case   VK_RETURN: 
    return   TRUE; 
    default: 
    break; 

    } return   CDialog::PreTranslateMessage(pMsg);