对话框中屏蔽回车键和ESC键
基于对话框的应用程序中,对于回车键和ESC键,在工程建立的时候就已经有了响应函数,分别是:
void CXXXDialog::OnOK();和void CXXXDialog::OnCancel()
这两个函数中,都只有一句代码,分别是CDialog::OnOK();和CDialog::OnCancel
这会导致一个问题:按下回车键和ESC键之后会令对话框析构并消失,所不同的是按下回车键后DoModal
返回的是IDOK,按下ESC键盘之后DoModal返回的是IDCANCEL
但是大部分时候我们并不希望按下回车键和ESC键之后使对话框退出,所以应该屏蔽掉这两种情况,做法如下:
首先在对话框的.h文件中加入如下内容:
virtual void OnOK();
virtual void OnCancel();
然后在cpp文件中写出这两个函数的代码:
void CXXXDialog::OnOK()
{
//什么都不用做
//CDialog::OnOK();
}
void CXXXDialog::OnCancel()
{
//什么都不用做
//CDialog::OnCancel();
}
然后可以自己在对话框上摆上“确定”、“取消”这样的按钮,然后在这些按钮的响应函数中写上CDialog::OnOK这样的代码用来退出对话框
注意:如果对话框放在了一个标签页中,那么一定要将回车键和ESC键屏蔽掉,否则在标签页中按一下回车键或者是ESC键,就会出现该页内容
消失的情况。
基于对话框的应用程序中,对于回车键和ESC键,在工程建立的时候就已经有了响应函数,分别是:
void CXXXDialog::OnOK();和void CXXXDialog::OnCancel()
这两个函数中,都只有一句代码,分别是CDialog::OnOK();和CDialog::OnCancel
这会导致一个问题:按下回车键和ESC键之后会令对话框析构并消失,所不同的是按下回车键后DoModal
返回的是IDOK,按下ESC键盘之后DoModal返回的是IDCANCEL
但是大部分时候我们并不希望按下回车键和ESC键之后使对话框退出,所以应该屏蔽掉这两种情况,做法如下:
首先在对话框的.h文件中加入如下内容:
virtual void OnOK();
virtual void OnCancel();
然后在cpp文件中写出这两个函数的代码:
void CXXXDialog::OnOK()
{
//什么都不用做
//CDialog::OnOK();
}
void CXXXDialog::OnCancel()
{
//什么都不用做
//CDialog::OnCancel();
}
然后可以自己在对话框上摆上“确定”、“取消”这样的按钮,然后在这些按钮的响应函数中写上CDialog::OnOK这样的代码用来退出对话框
注意:如果对话框放在了一个标签页中,那么一定要将回车键和ESC键屏蔽掉,否则在标签页中按一下回车键或者是ESC键,就会出现该页内容
消失的情况。