MFC 按回车关闭对话框的问题~~~ 我新建了一个基于对话框的工程,按回车就会关闭窗口。解决办法我也知道是重载onok函数~~但是我把系统给的两按钮 确定 取消 delete掉了然后我按回车仍然会关闭窗口~~~怎么解决~~~求教求教~~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我特意去实验了下,没有问题啊 ,不会关闭窗口OnOk中CDialog::OnOK()这句话要注释掉 1 最简单的办法:添加一个不可见的按钮,设为对话框的默认按钮即可2 重载对话框的PreTranslateMessage消息处理BOOL CSIMDlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class if( pMsg->message ==WM_KEYDOWN) { if(pMsg->wParam == VK_ESCAPE||pMsg->wParam == VK_RETURN) return TRUE; } return CDialog::PreTranslateMessage(pMsg);} 我使用的方法 是 在.h中加afx_msg LRESULT OnGetDefID(WPARAM wp, LPARAM lp);在.cpp文件中BEGIN_MESSAGE_MAP(CXXDlg, CDialog) //{{AFX_MSG_MAP(CXXDlg) ON_MESSAGE(DM_GETDEFID, OnGetDefID) //<-这个位置加它。 //}}AFX_MSG_MAPEND_MESSAGE_MAP()然后在下边添加处理LRESULT CXXDlg::OnGetDefID(WPARAM wp, LPARAM lp){ return MAKELONG(0,DC_HASDEFID);} 方法一:把这两个按钮隐藏;方法二:把这两个按钮的Tab Order 顺号设为最大;方法三:映射它的函数OnOK()和OnCancel(),并注释掉其中的CDialog::OnOK()和CDialog::OnCancel() BOOL CSIMDlg::PreTranslateMessage(MSG* pMsg) {// TODO: Add your specialized code here and/or call the base classif( pMsg->message ==WM_KEYDOWN){if(pMsg->wParam == VK_ESCAPE||pMsg->wParam == VK_RETURN)return TRUE;}return CDialog::PreTranslateMessage(pMsg);} 使用Irrlicht编译出错 请教大家两个小问题... 请教大虾,关于FindWindowEx 的用法 怎样在mfc中实现多个view类 打印预览界面关闭时发生的内存错误,有遇到过的或感兴趣的麻烦指教!!~~~ 跨进程的对象调用问题 怎样禁止编辑框中的光标显示? 急:<<windows核心编程>>一书为何光盘中的程序不能运行?如能解决再加 菜鸟问一个文件读写的问题? 对二值图像的连通域标识并外接矩形的代码 急急急!!!vc++6.0 udp问题 关于CoInitialize和CoUninitialize调用的问题
OnOk中CDialog::OnOK()这句话要注释掉
2 重载对话框的PreTranslateMessage消息处理BOOL CSIMDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if( pMsg->message ==WM_KEYDOWN)
{
if(pMsg->wParam == VK_ESCAPE||pMsg->wParam == VK_RETURN)
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}
afx_msg LRESULT OnGetDefID(WPARAM wp, LPARAM lp);在.cpp文件中
BEGIN_MESSAGE_MAP(CXXDlg, CDialog)
//{{AFX_MSG_MAP(CXXDlg)
ON_MESSAGE(DM_GETDEFID, OnGetDefID) //<-这个位置加它。 //}}AFX_MSG_MAP
END_MESSAGE_MAP()然后在下边添加处理LRESULT CXXDlg::OnGetDefID(WPARAM wp, LPARAM lp)
{
return MAKELONG(0,DC_HASDEFID);
}
方法二:把这两个按钮的Tab Order 顺号设为最大;
方法三:映射它的函数OnOK()和OnCancel(),并注释掉其中的CDialog::OnOK()和CDialog::OnCancel()
{
// TODO: Add your specialized code here and/or call the base class
if( pMsg->message ==WM_KEYDOWN)
{
if(pMsg->wParam == VK_ESCAPE||pMsg->wParam == VK_RETURN)
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}