1. 程式人生 > >MFC響應鍵盤及滑鼠按鍵

MFC響應鍵盤及滑鼠按鍵

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);
}

參考連結: