子控件中的回车问题

redfox1985 2010-02-05 04:38:51
我正在做一个软件,想能够改变树上显示的名字,就做了一些工作,但是在修改完editbox中的字符串后,回车并不能响应,窗口大概的层次是这样的
Dialog-主框架
View1-显示一些信息
Ctreectrl 在view1中的树控件
editbox 在ctreectrl中的某个条目上
主框架会得到回车消息,但是因为响应OnOk,就使用
virtual BOOL PreTranslateMessage(MSG* pMsg)
{
if (pMsg->wParam == VK_RETURN)
{
return TRUE;
}
return CWindow::IsDialogMessage(pMsg);
}
上面的语句给屏蔽了
不知道有人做过类似的东西没有?给个解决办法吧,感激不尽。。。。。
...全文
99 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xwsn007 2010-02-06
  • 打赏
  • 举报
回复
来晚了
redfox1985 2010-02-05
  • 打赏
  • 举报
回复
我找到解决办法了,原来只要把
if (pMsg->wParam == VK_RETURN)
{
return TRUE;
}
改为
if (pMsg->wParam == VK_RETURN)
{
DispatchMessage(pMsg);
return TRUE;
}
就可以了。。。。
结贴啦。。。哈哈
redfox1985 2010-02-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 vercitti 的回复:]
editbox自己做派生类然后处理键盘输入(Enter)

这个应该和主框架没什么关系的吧...
[/Quote]
关键是editbox根本就得不到回车消息。。。。
redfox1985 2010-02-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jx1j1x 的回复:]
上面的语句给屏蔽了?什么意思?
BOOL CXXXDlg:: PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN || pMsg->wParam == VK_SPACE ){
  if (pMsg->wParam == VK_RETURN) {
  UpdateData();
  MessageBox(m_edit);
  }
  else{
  ::TranslateMessage(pMsg);
  : ispatchMessage(pMsg);
  }
  return TRUE;
}
return CDialog: reTranslateMessage(pMsg);
}



[/Quote]
我意思是用上面代码屏蔽了OnOk响应
jx1j1x 2010-02-05
  • 打赏
  • 举报
回复
上面的语句给屏蔽了?什么意思?
BOOL CXXXDlg:: PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN || pMsg->wParam == VK_SPACE ){
if (pMsg->wParam == VK_RETURN) {
UpdateData();
MessageBox(m_edit);
}
else{
::TranslateMessage(pMsg);
: ispatchMessage(pMsg);
}
return TRUE;
}
return CDialog: reTranslateMessage(pMsg);
}


vercitti 2010-02-05
  • 打赏
  • 举报
回复
editbox自己做派生类然后处理键盘输入(Enter)

这个应该和主框架没什么关系的吧...

15,979

社区成员

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

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