VC++学习-函数篇(键盘操作函数)

编程环境:VS2013,MFC
在一个MFC界面中完成大量散乱数据的输入操作,包含很多的EDIT控件。当使用数字键输入时,用TAB进行焦点控制颇为不便,考虑使用回车键。
具体分两步实现:
1、将各控件的TAB顺序调整好。使用Ctrl+D,从自己认为Tab顺序应该为1的控件开始依次单击,即可实现响应顺序的设置。
2、重载对话框PreTranslateMessage消息处理函数,使当按下回车键时响应TAB键事件。具体代码如下:

///键盘操作函数///
BOOL CFASTENERDlg::PreTranslateMessage(MSG* pMsg)
{
		// TODO: Add your specialized code here and/or call the base class
		//屏蔽键盘常用按键
		if (pMsg->message == WM_KEYDOWN)
		{
			switch (pMsg->wParam)
			{
			//case VK_RETURN:	//屏蔽回车
			case VK_ESCAPE:		//屏蔽ESC
				return true;
			}
		}
		//顺次传递焦点, 除非当前焦点在确定按钮上时才响应触发消息  
		if ((pMsg->message == WM_KEYDOWN) && (VK_RETURN == (int)pMsg->wParam))
		{
			if (GetFocus()->GetDlgCtrlID() != IDOK)
			{
				pMsg->wParam = VK_TAB;
			}
		}
		return CDialog::PreTranslateMessage(pMsg);
}

参考链接:
http://www.jizhuomi.com/software/158.html
http://blog.csdn.net/eickandy/article/details/49487823
https://blog.csdn.net/hfutljx/article/details/70830340
https://blog.csdn.net/qq_23992597/article/details/53056717

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值