怎么样捕捉在edit control中按下回车键这一事件?

acai1028 2010-06-07 01:25:16
以前都用c#或者c++builder,现在拿到MFC懵了,这控件的事件代码怎么这么难找啊,比如c++builder里就写在OnKeypress()类似这样的事件下面就可以了,双击就可以生成,可是MFC咋这么费劲呢?求助。。。。
...全文
807 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
m_nAdrs 2010-06-07
  • 打赏
  • 举报
回复
PreTranslateMessage中判断
许文君 2010-06-07
  • 打赏
  • 举报
回复
最简单的方法是设置缺省按钮,并在按钮中相应事件
其次方法多了,诸如LS的都可以
zxfwizard 2010-06-07
  • 打赏
  • 举报
回复
编辑框对应的消息响应如下,如果这个里面还是没有,那就要自己在消息处理函数PreTranslateMessage里面进行判断了。
EN_CHANGE //编辑框中的文本己更新
EN_ERRSPACE //编辑框内存不足
EN_HSCROLL //用户点击了水平滚动条
EN_KILLFOCUS //编辑框正在失去输入焦点
EN_MAXTEXT //插入的内容被截断
EN_SETFOCUS //编辑框获得输入焦点
EN_UPDATE //编辑框中的文本将要更新
EN_VSCROLL //用户点击了垂直滚动条消息含义
jay0708 2010-06-07
  • 打赏
  • 举报
回复
PreTranslateMessage可以捕获
measuresoft 2010-06-07
  • 打赏
  • 举报
回复
楼上正解

下面是我子类化的一部分,处理EDIT回车,自动到一下个ID中,一般我会设为EDIT,这样就实现了输入时回车是自动跳到下一个EDIT控件的功能。
供参考
void CMyEdit::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if (nChar==VK_RETURN)
{
CDialog *pWnd=(CDialog *)GetParent();
pWnd->NextDlgCtrl ();
}
CEdit::OnKeyDown(nChar, nRepCnt, nFlags);
}
Eleven 2010-06-07
  • 打赏
  • 举报
回复
BOOL CXXDlg::PreTranslateMessage(MSG* pMsg) 
{
// TODO: Add your specialized code here and/or call the base class

if(WM_KEYDOWN == pMsg->message)
{
CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT1);
ASSERT(pEdit);
if(pMsg->hwnd == pEdit->GetSafeHwnd() && VK_RETURN == pMsg->wParam)
{
AfxMessageBox(_T("OK"));
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
pcgg5244 2010-06-07
  • 打赏
  • 举报
回复
弱弱的问下,wm_onchar行不
zwfgdlc 2010-06-07
  • 打赏
  • 举报
回复
要不你子类化EDIT控件,要不你有重载PreTranslateMessage(MSG* pMsg)函数,然后判断按下回车键时,焦点是不是在EDIT控件上。
向立天 2010-06-07
  • 打赏
  • 举报
回复
你的需求是什么
muzizongheng 2010-06-07
  • 打赏
  • 举报
回复
有en_killfocus, en_change事件。

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧