屏蔽取消按扭,关闭对话框问题
我不想响应在对话框上面按回车,或ESC就退出.所以我就重载了对话框的OnOK()和OnCancel().不响应CDialog::OnOK();CDialog::OnCancel();
但是点对话框上面的叉也关不掉对话框,只有在重载OnClose()里面,加上一句CDialog::OnCancel();才能关掉.
为什么屏蔽了对话框的取消息按扭, 要在对话框的OnClose()里加上CDialog::OnCancel();才能关掉对话框。而如果没有屏蔽取消按扭,就不用加代码也可以关掉对话框。请问这是什么原因啊?
[解决办法]
这个仅仅是MFC框架的问题,你知道就可以了,这可并不是什么清规戒律。
[解决办法]
在你现在的基础上,更改按钮ID,再映射新的消息处理,把原来的处理拷到新处理函数里!
[解决办法]
屏蔽那两个热渐
[解决办法]
PreTranslateMessage屏蔽。。
[解决办法]
同意楼上的。
重载PreTranslateMessage 使回车键响应在其他别的控件上。
[解决办法]
这是系统调用的,无论删除按钮还是修改按钮ID都没用。当然你那样修改函数可以解决一部分问题,但不是好的作法。你可以重载PreTranslateMessage()函数,屏蔽掉对ESC的响应即可,代码如下
BOOL CDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg-> message == WM_KEYDOWN &&
(pMsg-> wParam == VK_ESCAPE || pMsg-> wParam == VK_RETURN))
return TRUE;
return CDialog::PreTranslateMessage(pMsg);
}