MFC用代码实现屏蔽ESC和Enter键按下,对话框窗体关闭或者消失的问题
2017-04-04 20:20
429 查看
新建的MFC对话框项目,去掉默认对话框中的确定和取消按钮,但是编译启动窗体之后,按下enter键,窗体还是会关闭。
为了解决这个问题,可以在代码中添加代码,屏蔽enter键按下的效果响应。由于MFC对话框之间状态由PreTranslateMessage这个函数接口进行消息的传递,于是解决这个问题,可以考虑从PreTranslateMessage入手。按下enter键和esc键,窗体默认执行到OnOk和OnCancel接口。
解决方案:
在窗体对应的.h文件中添加如下代码,
protected:
virtual BOOL PreTranslateMessage(MSG* pMsg);
public:
virtual void OnOk();
virtual void OnCancel();
在窗体对应的.h文件中添加如下代码,
BOOL ExampleDlg::PreTranslateMessage(MSG* pMsg)
{
//屏蔽ESC键按下
if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_ESCAPE)
{
return TRUE;
}
//屏蔽Enter键按下
if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN && pMsg->wParam)
{
return TRUE;
}
//操作其他msg
return CDialog::PreTranslateMessage(pMsg);
}
void ExampleDlg::OnOk()
{
return;
}
void ExampleDlg::OnCancel()
{
return;
}
为了解决这个问题,可以在代码中添加代码,屏蔽enter键按下的效果响应。由于MFC对话框之间状态由PreTranslateMessage这个函数接口进行消息的传递,于是解决这个问题,可以考虑从PreTranslateMessage入手。按下enter键和esc键,窗体默认执行到OnOk和OnCancel接口。
解决方案:
在窗体对应的.h文件中添加如下代码,
protected:
virtual BOOL PreTranslateMessage(MSG* pMsg);
public:
virtual void OnOk();
virtual void OnCancel();
在窗体对应的.h文件中添加如下代码,
BOOL ExampleDlg::PreTranslateMessage(MSG* pMsg)
{
//屏蔽ESC键按下
if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_ESCAPE)
{
return TRUE;
}
//屏蔽Enter键按下
if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN && pMsg->wParam)
{
return TRUE;
}
//操作其他msg
return CDialog::PreTranslateMessage(pMsg);
}
void ExampleDlg::OnOk()
{
return;
}
void ExampleDlg::OnCancel()
{
return;
}
相关文章推荐
- MFC对话框程序 屏蔽ESC和ENTER键关闭对话框的方法
- MFC对话框程序 屏蔽ESC和ENTER键关闭对话框的方法
- VC MFC 屏蔽ESC和ENTER键关闭对话框
- MFC对话框程序 屏蔽ESC和ENTER键关闭对话框的方法
- VC MFC 屏蔽ESC和ENTER键关闭对话框
- VS2010 MFC中屏蔽ESC和ENTER键关闭对话框的方法
- VS2010 MFC中屏蔽ESC和ENTER键关闭对话框的方法
- VC MFC 屏蔽ESC和ENTER键关闭对话框
- MFC对话框程序 屏蔽ESC和ENTER键关闭对话框的方法
- MFC 屏蔽ESC和ENTER键 关闭对话框
- MFC对话框程序 屏蔽ESC和ENTER键关闭对话框的方法
- MFC对话框程序 屏蔽ESC和ENTER键关闭对话框的方法
- MFC对话框程序 屏蔽ESC和ENTER键关闭对话框的方法
- MFC中屏蔽ESC和回车关闭对话框
- MFC中屏蔽ESC和回车关闭对话框
- MFC对话框Enter键、Esc键、关闭按钮的消息处理
- MFC对话框中屏蔽Enter键与ESC键
- MFC对话框程序屏蔽ESC和ENTER键退出,完美解决方案
- 屏蔽基于对话框的MFC程序中按下ESC关闭窗口的功能
- MFC中屏蔽ESC和回车关闭对话框