OH!见鬼的对话框!Help!!!

Sandy 2000-04-14 02:00:00
各位前辈,大侠小的最近遇到了一个见鬼的问题?
偶在编写基于CDialog的程序时从来没有注意到!
这样的现象:
偶已经将对话框的ok cnacel等button删除
但在程序运行的时候,无论焦点在哪个control
上,只要你按回车键程序立即结束!
偶百思不得其解,以为需要手动处理wm-keydown
等消息,但这显然不是解决之道!
望前辈指点迷经!
...全文
175 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
skt642 2001-05-31
  • 打赏
  • 举报
回复
39208关注!
dengdun 2000-04-14
  • 打赏
  • 举报
回复
重载OnOK()和OnCancel()这两个虚函数,在函数内部什么也不做,如果想要在程序中通过点击其他按钮的方式来退出程序的话,那么可以在相应按钮的处理函数中加入CDialog::OnCancel();这一句即可。
fupf88 2000-04-14
  • 打赏
  • 举报
回复
你还可以将OK按钮的缺省属性去掉.
获得焦点的按钮你安回车当然会执行此按钮,而具有缺省属性的按钮会缺省的具有焦点.
当然覆盖OnOK()中的内容也是可以的.
syz 2000-04-14
  • 打赏
  • 举报
回复
鬼知道为什麽回车就会得到WM QUIT 消息!不明白!
Sniper 2000-04-14
  • 打赏
  • 举报
回复
首先,就象telan据说,实现CMyDialog::OnOK(),直接返回,什么都不作。需要的话加一个自己的退出按钮,实现按钮消息响应方法CMyDialog::OnQuit(),在其中调用CDialog::OnOK()就可以了。
对于Cancel的处理也是同样的道理。
longx 2000-04-14
  • 打赏
  • 举报
回复
对话框中回车键和Esc键都有对应的虚函数处理。OnOK(),OnCancel()
缺省的就是结束对话框.
telan 2000-04-14
  • 打赏
  • 举报
回复
你还可以在
PreTranslateMessage函数
中捕获在哪个控件上按了
回车键。
telan 2000-04-14
  • 打赏
  • 举报
回复
要屏蔽回车键:
只需定义OnOK()函数:
void CXXXDialog::OnOK()
{
// 什么都不做
}

同时,设定自己的default button。
要屏蔽ESC键的话,就定义OnCancel()函数

16,470

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧