当前位置: 首页 > news >正文

C++/MFC:在窗体Form(Dialog)中多个编辑框时,在输入时将回车解释为TAB键,将输入焦点移到下一个编辑框的方法

 很多时候,为了输入方便,常用的做法,就是将回车键解释为将输入焦点移动到下一个编辑框中。就像是我的VxTerm中的快速连接输入一样:

VxTerm是一个国产化替代的SSH工具,可以从本站的资源中免费下载并且免费使用,同时可以从中学习和分享本人的一些代码和经验:https://download.csdn.net/download/mynjer/87769610

只要输入焦点不在下面两个按钮,按回车就当做TAB键:

1、首先,先通过格式下的菜单,打开TAB顺序调整:

在界面中按顺序点各个输入框,就能从其中显示的序号上进行调整。

2、在Dialog的循环消息中,添加PreTranslateMessage,加入如下代码:

BOOL xQuickConnect::PreTranslateMessage(MSG* pMsg)
{switch (pMsg->message){case WM_KEYDOWN:if (GetFocus() == GetDlgItem(xBTNOK.GetDlgCtrlID())|| GetFocus() == GetDlgItem(xBTNOK.GetDlgCtrlID())) //判断当前焦点是否在窗体的按钮上{ //如果在按钮上,则按系统执行所有的功能的功能return CDialog::PreTranslateMessage(pMsg);}else{ //否则,判断按下的是否是回车if (pMsg->wParam == VK_RETURN){ //如果是回车,就忽略,并将TAB键放入当前的输入缓冲区INPUT inputs[1] = {};ZeroMemory(inputs, sizeof(inputs));inputs[0].type = INPUT_KEYBOARD;inputs[0].ki.wVk = VK_TAB;UINT uSent = SendInput(ARRAYSIZE(inputs), inputs, sizeof(INPUT));return 1;}}default:break;}return CDialog::PreTranslateMessage(pMsg);
}

成功后,就相当于是把回车键当成TAB键来用了。

这在一些专门的数据录入界面中,会非常有用。

http://www.lryc.cn/news/291026.html

相关文章:

  • 鸿蒙南向开发——GN快速入门指南
  • PyCharm常用快捷键和设置
  • Unity - 调节camera物理相机参数(HDRP)
  • @JsonIgnore的使用及相关问题的解决
  • 万户 ezOFFICE SendFileCheckTemplateEdit.jsp SQL注入漏洞
  • 自建DNS劫持服务器,纯内网劫持PS5,屏蔽更新,自动hen
  • C语言王道第八周一题
  • 探索1688店铺所有商品API接口:一键获取海量数据,开启商业智能新篇章
  • 使用Win32API实现贪吃蛇小游戏
  • 力扣0114——二叉树展开为链表
  • FPGA硬件架构
  • spring boot 嵌入chatGPT步骤
  • 博云科技与中科可控全面合作,探索前沿金融科技新机遇
  • 十一、常用API——练习
  • 基于ssm和微信小程序的健身房私教预约管理系统
  • 微服务架构
  • 山体滑坡在线安全监测预警系统(解决方案)
  • StarRocks -- 基础概念(数据模型及分区分桶)
  • Unity 状态模式(实例详解)
  • 力扣hot100 分割回文串 集合 dfs
  • C# 一个快速读取写入操作execl的方法封装
  • axios结合ts使用,取消请求,全局统一获取数据,抛出错误信息
  • MongoDB:从容器使用到 Mongosh、Python/Node.js 数据操作(结构清晰万字长文)
  • 超越传统—Clean架构打造现代Android架构指南
  • WebGL开发项目的类型
  • CUDA编程- - GPU线程的理解 thread,block,grid - 学习记录
  • yum 报错 ZLIB_1.2.3.3 not defined in file libz.so.1
  • 数字孪生智慧能源电力Web3D可视化云平台合集
  • DataTable.Load(reader)注意事项
  • DC-DNS(域名解析服务)(23国赛真题)