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


参考链接:

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





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值