我在重写PreTranslateMsg函数时,发现键盘消息无法判断当前是否有"Ctrl", "Shift", "Alt"等已被按住,按照WM_KEYDONW的帮助,那
一位又时有时没有,真不知道该怎么办?
BOOL CMyDlg::PreTranslateMsg(MSG* pMsg)
{
  if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN)
  {
    if ((pMsg->lParam & 0x1000000) == 0) // 第24位表示是否有Ctrl等键被按住
    {
      pMsg->wParam = VK_TAB;
    }
  }  return CDialog::PreTranslateMsg(pMsg);
}高手,我该怎么才能够捕捉这类消息,并且判断是按住了哪个键(Ctrl, Alt或Shift)呢?