首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

编辑框怎么屏蔽回车键

2013-03-06 
编辑框如何屏蔽回车键基于对话框的MFC应用程序,上面加一个编辑框控件,运行时候在编辑框中输入回车键,对话

编辑框如何屏蔽回车键
基于对话框的MFC应用程序,上面加一个编辑框控件,运行时候在编辑框中输入回车键,对话框就会关闭。
在Dlg类中重载OnOK()函数,函数体内没有内容,为什么就可以解决问题?
编辑框的输入和OnOK函数有什么关系吗?

[解决办法]
跟控件属性没关系,楼上说的不对。
楼主找的原因是对的,只是没有处理完。
回车键会触发调用OnOK()函数。OnOK是个虚函数,继承自基类。实际上,你的“Dlg”类的OnOK()函数并不是空的,而是有一句“CDialog::OnOK();”表示默认情况下调用基类的函数,而CDialog::OnOK()会导致关闭对话框。要解决这问题,只需将CDialog::OnOK()注释掉即可,"//CDialog::OnOK()",使其彻底变成空函数。

[解决办法]
在这个函数里写。解决方法是在CDialog::PreTranslateMessage() 的重载函数中将ESC和回车按键的消息处理掉.

  直接上代码:

  CResultCollectorDlg::PreTranslateMessage(MSG* pMsg)

  {

  if(pMsg->message == WM_KEYDOWN) {

  switch(pMsg->wParam) {

  case VK_RETURN: //回车

  return TRUE;

  case VK_ESCAPE: //ESC

  return TRUE;

  }

  }

  return CDialog::PreTranslateMessage(pMsg);

  }
[解决办法]
这个回车类似点击了 确定 按钮
[解决办法]
PreTranslateMessage ()

在这个函数里把回车键给截了

热点排行