我在重写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)呢?
一位又时有时没有,真不知道该怎么办?
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)呢?
int vKey // virtual-key code
);