永发信息网

mfc中如何通过按方向键移动编辑框

答案:2  悬赏:20  手机版
解决时间 2021-11-28 12:53
mfc中如何通过按方向键移动编辑框
最佳答案
//该段代码是处理按键时,移动到下一编辑框代码,注意保证一点,就是你编辑框的ID为连续ID值;
 CString sButtonText;
 CWnd *pWnd;
 pWnd = GetNextDlgTabItem(GetFocus());
 int ret = pWnd->GetDlgCtrlID();
 SendDlgItemMessage(ret,EM_SETSEL,0,-1);
 pWnd->SetFocus();
 pWnd->GetWindowText(sButtonText);
至于按键消息的处理(即按哪个键来控制移动):
可在该稍息不完成:
 if(pMsg->message == WM_KEYDOWN) 
 {
  if( pMsg->wParam == VK_F2)//我这里是以“F2”为例,至于你要用什么键来控制,查找到相应的键值填在这里即可。
  {
                 //这里是消息响应部分,即可填为上面的代码
  }
 } 
完整代码为:
BOOL CTestDlg::PreTranslateMessage(MSG* pMsg) 
{
 if(pMsg->message == WM_KEYDOWN) 
 {
  if( pMsg->wParam == VK_F2)
  {
   // TODO: Add extra validation here
   CString sButtonText;
   CWnd *pWnd;
   
   pWnd = GetNextDlgTabItem(GetFocus());
   int ret = pWnd->GetDlgCtrlID();
   
   SendDlgItemMessage(ret,EM_SETSEL,0,-1);
   
   pWnd->SetFocus();
   
   
   pWnd->GetWindowText(sButtonText);
   }
 }
 return CDialog::PreTranslateMessage(pMsg);
}
添加消息如下图:

全部回答
完全可以.一个是响应方向键移动的函数,PreTranslatedMSG().
然后就是在函数中Switch 对应各按键虚拟指写代码.移动编辑框.就用SetWindowsPos()函数就可以了.这个函数是用来设置窗口显示的一些信息.包括位置,大小,Z秩序等等
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
用厨先生水晶焖锅写一段看着健康营养美味的宣
山坡放养,多少天的小鸡合适进坡上鸡厂,40天--
凉拌海带芽怎样做好吃,凉拌海带芽最正宗的做
德克士德意卡集享卡和德意卡有什么区别?
老婆总是不要了,不要了,嘴里又还嗯嗯的
海荣花卉水族地址在哪,我要去那里办事,
中兴ptn6200和6300主控板通用吗
思茅为什么禁止大货车进入环城路
有没有人在淘宝上买过狗狗?这么便宜是假的吧
每月存2千元定期五年多少钱?
三相四线 35平方的铝线能负载 多少?
中国邮政信用卡还款日期为23号,请问最迟什么
求言情小说紫烟迷情
2017年吉林省白城市事业单位考试报名入口,可
上海外一外二外三外四外五集装箱码头分别指的
推荐资讯
恩威道源商城系统怎么关闭了
文成有哪些初中?
网络天地网吧地址好找么,我有些事要过去,
看图猜这三个是什么车系?
身体评估
就高中的广播站的面试个问题,我想祥细一点
修路时候为什么要先打一个个小洞?
在物理学中,把物体保持运动状态________的特
求助,弯曲90度怎么突破
私人住宅的 室内楼梯: 梯段宽1m 踏步宽250mm
如何充分发挥村干部在农村经济建设中的作用
游戏王中真崎杏子喜欢的人是谁是武藤游戏还是
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?