MFC響應鍵盤及滑鼠按鍵
阿新 • • 發佈:2019-02-16
BOOL CCarControlDlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class <span style="white-space:pre"> </span>if(pMsg->message == WM_KEYUP)<span style="white-space:pre"> </span>//鍵盤擡起操作 { switch(pMsg->wParam)<span style="white-space:pre"> </span>//判斷是哪個按鍵 { case VK_UP:<span style="white-space:pre"> </span>//向上的箭頭 OnBtnUpUp(); break; case VK_DOWN:<span style="white-space:pre"> </span>//向下的箭頭 OnBtnDownUp(); break; case VK_LEFT:<span style="white-space:pre"> </span>//向左的箭頭 OnBtnLeftUp(); break; case VK_RIGHT:<span style="white-space:pre"> </span>//向右的箭頭 OnBtnRightUp(); break; default: break; } } else if(pMsg->message == WM_KEYDOWN)<span style="white-space:pre"> </span><span style="font-family: Arial, Helvetica, sans-serif;">//鍵盤按下操作</span><span style="white-space:pre"> </span> { switch(pMsg->wParam)<span style="white-space:pre"> </span>//判斷是哪個按鍵 { case VK_UP: OnBtnUpDown(); break; case VK_DOWN: OnBtnDownDown(); break; case VK_LEFT: OnBtnLeftDown(); break; case VK_RIGHT: OnBtnRightDown(); break; default: break; } } else if(pMsg->message == WM_LBUTTONUP)<span style="white-space:pre"> </span>//滑鼠左鍵擡起操作 { if(pMsg->hwnd == GetDlgItem(IDC_BTN_UP)->m_hWnd)//如果事件的控制代碼和IDC_BTN_UP按鈕的的控制代碼相同,則認為是IDC_BTN_UP按鈕被滑鼠左鍵擡起 { OnBtnUpUp(); } else if(pMsg->hwnd == GetDlgItem(IDC_BTN_DOWN)->m_hWnd)//同上 { OnBtnDownUp(); } else if(pMsg->hwnd == GetDlgItem(IDC_BTN_LEFT)->m_hWnd)//<span style="font-family: Arial, Helvetica, sans-serif;">同上</span> { OnBtnLeftUp(); } else if(pMsg->hwnd == GetDlgItem(IDC_BTN_RIGHT)->m_hWnd)//同上 { OnBtnRightUp(); } else { //do nothing } } else if(pMsg->message == WM_LBUTTONDOWN)<span style="white-space:pre"> </span>//滑鼠左鍵按下操作 { if(pMsg->hwnd == GetDlgItem(IDC_BTN_UP)->m_hWnd)//如果事件的控制代碼和IDC_BTN_UP按鈕的控制代碼相同,則認為是IDC_BTN_UP被滑鼠左鍵按下 { OnBtnUpDown(); } else if(pMsg->hwnd == GetDlgItem(IDC_BTN_DOWN)->m_hWnd)//同上 { OnBtnDownDown(); } else if(pMsg->hwnd == GetDlgItem(IDC_BTN_LEFT)->m_hWnd)//同上 { OnBtnLeftDown(); } else if(pMsg->hwnd == GetDlgItem(IDC_BTN_RIGHT)->m_hWnd)//同上 { OnBtnRightDown(); } else { //nothing } } else { <span style="white-space:pre"> </span>//nothing } return CDialog::PreTranslateMessage(pMsg); }
參考連結: