********救急啊*********对话框程序怎么一按回车键就没了??
苦恼!苦恼!
急盼高人知道!
问题点数:36、回复次数:9Top
1 楼lsnhit(风之子)回复于 2001-06-27 14:18:49 得分 0
简单,因为对话框有IDOK的响应消息OnOK(),把它去掉就可以了
你可以试一试按ESC,程序应该也会退出的Top
2 楼plato(天天)回复于 2001-06-27 14:19:12 得分 0
对话框有DEFAULT按钮,一般是OKTop
3 楼plato(天天)回复于 2001-06-27 14:20:55 得分 0
去掉OnOK不好,按OK岂不是没有反应了?
最好的方法:在资源编辑器中,将OK按钮的属性"Default Button"去掉,不用改源码Top
4 楼neomeng(阿蒙)回复于 2001-06-27 14:31:26 得分 30
处理PreTranslateMessage
BOOL CComSetupEdit::PreTranslateMessage(MSG* pMsg)
{
BOOL bHandledMsg = FALSE;
switch (pMsg->message)
{
case WM_KEYDOWN:
{
switch (pMsg->wParam)
{
// hitting escape while searching for password edits
// should only stop the search for password edits and
// not kill app
case VK_ESCAPE://ESC键
bHandledMsg = TRUE;
break;
case 13://回车
bHandledMsg = TRUE;
break;
default: break;
} // switch (pMsg->wParam)
}
break;
default: break;
} // switch (pMsg->message)
return (bHandledMsg ? TRUE : CDialog::PreTranslateMessage(pMsg));
}
Top
5 楼bob_yan(小保)回复于 2001-06-27 14:36:44 得分 0
最简单的就是重载OnOk(),将CDialog::OnOk()去掉就可以了。如果需要在OnOk()的时候要处理什么,尽管处理好了。Top
6 楼ximuwa(西木瓦)回复于 2001-06-27 15:05:57 得分 0
对对对,大家说得很对,我举手赞成!Top
7 楼Sunny_lin(大和尚)回复于 2001-06-27 17:21:30 得分 0
bob_yan(小保) 说的对,
重载ONOK函数,但是在函数中什么都不做,或者只做你的事情!
Top
8 楼isdom(狗狗)回复于 2001-06-27 20:36:04 得分 6
默认按钮的意思就是 自动响应dialog 的enter , 作为自己的click事件,
而 缺省的 IDOK 就是 默认按钮属性, 去掉IDOK的默认按钮, 自己建一个button, 设为默认按钮, visible , or disable 随你高兴Top
9 楼ilc()回复于 2001-07-17 20:32:53 得分 0
还是neomeng(大胖)的方法管用,其它方法都不能屏蔽掉Esc。Top




