按Esc,对话框就消失。触发了什么事件?和OnCancel同一个事件处理函数吗?
按Esc,对话框就消失。触发了什么事件?和OnCancel同一个事件处理函数吗? 问题点数:7、回复次数:11Top
1 楼YanDong_8212(谢科)回复于 2005-07-02 03:15:19 得分 7
不是,它是默认调用pretranslatemessaga()里面的默认处理,要处理的话应该重载此函数,方法是先添加WM_PRETRANSLATEMESSAGE消息,然后处理ESC消息Top
2 楼krh2001(边城浪子)回复于 2005-07-02 08:37:16 得分 0
PreTransparentMessage 这个函数里处理了ESC和回车。 要屏蔽的话,重载这个虚函数,然后直接返回CWnd::PreTransparentMessage(pMsg);
Top
3 楼loseme915(郁闷)回复于 2005-07-02 16:12:27 得分 0
?有那么麻烦吗?我记得好象只要重载OnOK(),OnCancel就可以了Top
4 楼bigelm(枯燥着快乐着)回复于 2005-07-02 16:33:17 得分 0
同意楼上,重载OnCancel()并将其掏空就可以了。Top
5 楼YanDong_8212(谢科)回复于 2005-07-02 16:34:08 得分 0
如果是基于对话框的程序,重载就可以了.
但是我就曾经遇到,当我不是基于对话框的时候,ESC退出时出现了点问题.Top
6 楼pipilupzj(皮皮鲁)回复于 2005-07-02 16:37:13 得分 0
的确,esc按键消息最终会导致向对话框发送一个点击Cancle按钮的消息,所以只需要处理对应的消息处理函数OnCancle()就行了
Top
7 楼38062708(土豆精)回复于 2005-07-02 17:04:16 得分 0
重载 ONCANCEL() ,使其为空函数Top
8 楼booming(信誉值由于系统错误导致)回复于 2005-07-02 18:37:16 得分 0
那继续问下,
Cancle控件被我删除了。
我要拦截Ecs,只能在PreTransparentMessage 吧,
但具体如何弄呢?拦截键盘Esc?Top
9 楼booming(信誉值由于系统错误导致)回复于 2005-07-02 18:37:40 得分 0
谢谢大家啊。这么热心,感动中。。。Top
10 楼bigelm(枯燥着快乐着)回复于 2005-07-02 18:50:33 得分 0
Cancle控件被我删除了?(更正,不是控件是按钮)
你认为删除了就不能重载了?你可真行
自己想办法吧,等你解决后结贴。
Top
11 楼booming(信誉值由于系统错误导致)回复于 2005-07-02 19:34:01 得分 0
按钮不属于控件?Top




