MFC响应键盘及鼠标按键

BOOL CCarControlDlg::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	
	
	
		if(pMsg->message == WM_KEYUP)	//键盘抬起操作
		{
			switch(pMsg->wParam)	//判断是哪个按键
			{
			case VK_UP:		//向上的箭头
				OnBtnUpUp();
				break;
			case VK_DOWN:		//向下的箭头
				OnBtnDownUp();
				break;
			case VK_LEFT:		//向左的箭头
				OnBtnLeftUp();
				break;
			case VK_RIGHT:		//向右的箭头
				OnBtnRightUp();
				break;
			default:
				break;
			}
		}
		else if(pMsg->message == WM_KEYDOWN)	//键盘按下操作
		{
			switch(pMsg->wParam)	//判断是哪个按键
			{
			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)	//鼠标左键抬起操作
		{
			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)//同上
			{
				OnBtnLeftUp();
			}
			else if(pMsg->hwnd == GetDlgItem(IDC_BTN_RIGHT)->m_hWnd)//同上
			{
				OnBtnRightUp();
			}
			else
			{
				//do nothing
			}
		}
		else if(pMsg->message == WM_LBUTTONDOWN)	//鼠标左键按下操作
		{
			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
		{
			//nothing
		}
	

	return CDialog::PreTranslateMessage(pMsg);
}


参考链接:

http://bbs.csdn.net/topics/390398270

http://www.cnblogs.com/huipengkankan/archive/2011/09/21/2184479.html

http://blog.sina.com.cn/s/blog_7590da790101285a.html





你可能感兴趣的:(C/C++)