工控编程吧
标题:
245上位机VC MFC利用TAB或回车键切换焦点
[打印本页]
作者:
qq263946146
时间:
2016-3-3 21:37
标题:
245上位机VC MFC利用TAB或回车键切换焦点
(, 下载次数: 2)
上传
点击文件名下载附件
245上位机VC MFC利用TAB或回车键切换焦点
功能展示
焦点就是光标所在的位置点,控件拥有了焦点才能进行操作,比如按钮拥有焦点可以进行点击,双击操作,编辑框拥有焦点才可以进行内容的输入。我们在登录QQ时先输入账号,然后用鼠标再点击密码输入编辑框使其具有输入焦点才能输入密码,我们当前例程通过回车键就能够实现输入焦点的切换,方面输入,效果如图;
要点提示
1.窗口控件都有TAB ORDER属性,可以通过编辑软件进行此项属性的设置,然后我们编写好的程序就可以通过键盘上TAB键按照我们设置的TAB ORDER顺序的切换焦点;当前例程也通过截获回车消息,再调用PrevDlgCtrl()或NextDlgCtrl()函数,实现焦点的前移或后移;
2.按键的截获可以重载窗口的虚函数PreTranslateMessage()实现; PreTranslateMessage是消息在送给TranslateMessage函数之前被调用,也就是系统消息传递到窗口前都要经过此函数。
实现功能
1.新建基于对话框的应用程序
2.拖拽多个按钮和编辑框,用于测试个性TAB顺序用;
3.在VC6.0编辑软件菜单上设置窗口界面TAB顺序:进行窗口资源编辑界面->菜单上排版->TABORDER;
4.重载窗口PreTranslateMessage()函数,添加以下代码实现回车键切换焦点功能
BOOL CGkbc8Dlg::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN)
{
switch(pMsg->wParam)
{
case VK_ESCAPE: //Esc按键事件
return true;
case VK_RETURN: //Enter按键事件
//NextDlgCtrl();
PrevDlgCtrl();
return true;
default:
break;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
复制代码
我们来演示下功能实现的整个过程
[iqiyi]http://player.video.qiyi.com/9c684acdd3da8093822f755df143008c/0/0/w_19rsxfrxcl.swf-albumId=5506569209-tvId=5506569209-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4