请问怎么屏蔽ALT+F1
为什么我用VK_ALT说没有定义?

解决方案 »

  1.   

    alt键对应VK_MENU
    一般用GetKeyState(VK_MENU)<0BOOL CMydilog::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class

    if (pMsg->message == WM_KEYDOWN)
    {
    if (pMsg->wParam ==VK_F1)
    {
    if(::GetKeyState(VK_MENU) < 0)
    return TRUE;
    }
    }
    return CDialog::PreTranslateMessage(pMsg);
    }
      

  2.   

    楼上的代码不行,ALT被认为是WM_SYSKEYDOWN消息,而不是WM_KEYDOWN
    应该这样:
    BOOL CPlayWaveDlg::PreTranslateMessage(MSG* pMsg)
    {
    switch (pMsg->message)
    {
    case WM_SYSKEYDOWN:
    if (pMsg->wParam ==VK_F1)
    ShowMsg("ok"); //按下了ALT+F1
                       break;
    default:
    break;
    } return CDialog::PreTranslateMessage(pMsg);
    }
      

  3.   

    if( pMsg->message == WM_SYSKEYDOWN )
    {   
    switch( pMsg->wParam )
    {
    case VK_F1:
    if(::GetKeyState(VK_MENU) < 0)
    {
    AfxMessageBox("123");
                                        return TRUE;
    }
    }
    }