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

子对话框的回车键怎么屏蔽掉

2012-08-08 
子对话框的回车键如何屏蔽掉?环境:VS2008 MFC 单文档 FormView问题:在对话框中,我添加了多个子对话框作为

子对话框的回车键如何屏蔽掉?
环境:VS2008 MFC 单文档 FormView
问题:在对话框中,我添加了多个子对话框作为界面,点击按钮切换显示。现在问题是如果我在子对话框的编辑框中按回车键,子对话框就消失了(子对话框的OK键,取消键已删除)。。。。请问该怎么把子对话框的回车键屏蔽,同时按回车键时,选择按主对话框的确定键?
添加子对话框代码:

C/C++ code
CRect rt;    m_groupBoxRight.GetWindowRect(&rt);    this->ScreenToClient(&rt);    rt.DeflateRect(1,1,1,1);    if(m_tabBasicSet.m_bSelected == TRUE)    {        m_dlgBasic.ShowWindow(SW_SHOW);        m_dlgMeasure.ShowWindow(SW_HIDE);        m_dlgShow.ShowWindow(SW_HIDE);        m_dlgBasic.MoveWindow(&rt);    }        else if(m_tab_set1.m_bSelected)    {        m_dlgBasic.ShowWindow(SW_HIDE);        m_dlgMeasure.ShowWindow(SW_SHOW);        m_dlgShow.ShowWindow(SW_HIDE);        m_dlgMeasure.MoveWindow(&rt);    }


[解决办法]
提供一种思路:
PreTranslateMessage截获回车消息,return掉即可
楼下继续
[解决办法]
1、取消IDOK按钮的默认属性,就可以将对话框的回车键屏蔽
2、响应IDOK按钮的WM_COMMAND消息,PostMessage(GetParent(hChildDlg),WM_CLOSE,0,0);
[解决办法]
BOOL CxxxDlg::PreTranslateMessage(MSG* pMsg) 
if ( (pMsg->message == WM_KEYDOWN) && ( pMsg->wParam == VK_RETURN ))
return TRUE;
可能主对话框和子对话框都要
[解决办法]
C/C++ code
BOOL CTestDlg::PreTranslateMessage(MSG* pMsg){  // TODO: 在此添加专用代码和/或调用基类  if(pMsg->message == WM_KEYDOWN    && pMsg->wParam == VK_RETURN    && pMsg->hwnd != GetDlgItem(IDOK)->GetSafeHwnd())    return TRUE;  return CDialog::PreTranslateMessage(pMsg);} 

热点排行