处理方法一 会有个问题就是把系统菜单上的关闭事件也屏蔽掉了。
:去除OnOK和OnCancel的默认处理
一. 去掉OK和CANCEL按钮,然后在.h中的下面位置加入
// Generated message map functions
virtual void OnOK();
virtual void OnCancel();
DECLARE_MESSAGE_MAP()
二在.cpp中加入对应的OnOK和OnCancel处理
void CParamSetDlg::OnOK()
{
注意不加处理
}
void CParamSetDlg::OnCancel()
{
注意不加处理
}
方法二 推荐使用这种方法
直接在重载的PreTranslateMessage函数中屏蔽回车和ESC的消息,和以上方法大同小异:
BOOL CxxxDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_ESCAPE) return TRUE;
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN) return TRUE;
else
return CDialog::PreTranslateMessage(pMsg);
}
本文介绍了一种方法来去除对话框中OnOK和OnCancel按钮的默认处理,防止关闭事件被屏蔽,并提供了一个推荐的方法使用PreTranslateMessage函数屏蔽回车和ESC消息。
1万+

被折叠的 条评论
为什么被折叠?



