永发信息网

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

答案:2  悬赏:20  手机版
解决时间 2021-11-28 12:53
  • 提问者网友:棒棒糖
  • 2021-11-27 23:18
mfc中如何通过按方向键移动编辑框
最佳答案
  • 五星知识达人网友:零点过十分
  • 2021-11-27 23:55
//该段代码是处理按键时,移动到下一编辑框代码,注意保证一点,就是你编辑框的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);
}
添加消息如下图:

全部回答
  • 1楼网友:纵马山川剑自提
  • 2021-11-28 00:02
完全可以.一个是响应方向键移动的函数,PreTranslatedMSG().
然后就是在函数中Switch 对应各按键虚拟指写代码.移动编辑框.就用SetWindowsPos()函数就可以了.这个函数是用来设置窗口显示的一些信息.包括位置,大小,Z秩序等等
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯