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

如题,可以实现吗... 如题,可以实现吗 展开
 我来答
xjc_cd
2010-06-25 · TA获得超过413个赞
知道小有建树答主
回答量:445
采纳率:0%
帮助的人:438万
展开全部

//该段代码是处理按键时,移动到下一编辑框代码,注意保证一点,就是你编辑框的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);

}

添加消息如下图:

第爵A9
2010-06-25 · 超过12用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:33.2万
展开全部
完全可以.一个是响应方向键移动的函数,PreTranslatedMSG().
然后就是在函数中Switch 对应各按键虚拟指写代码.移动编辑框.就用SetWindowsPos()函数就可以了.这个函数是用来设置窗口显示的一些信息.包括位置,大小,Z秩序等等
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式