MFC禁止响应ESC和回车,但不影响正常按键功能

作者&投稿:不肾 (若有异议请与网页底部的电邮联系)
如何使对话框不响应enter键与esc键~

如果是MFC规则DLL,并且设置的“使用共享DLL中的MFC”,需要在导出函数入口处加上:
AFX_MANAGE_STATE(AfxGetStaticModuleState());
不过感觉不像是这个问题,先试试吧。

重载 PreTranslateMessage 好
BOOL CMyDlg::PreTranslateMessage(MSG* pMsg) {if(pMsg->message ==WM_KEYDOWN) {int nVirtKey = (int)pMsg->wParam;//截获ESC 和回车事件if(nVirtKey==VK_ESCAPE || nVirtKey == VK_RETURN) {return TRUE;}}return CDialog::PreTranslateMessage(pMsg);}

在PreTranslateMessage里面,判断来的消息类型,如果是按下键盘的消息,并且是ESC或者是回车键,那么返回。其他的话,就还是使用基类的 PreTranslateMessage.
BOOL CDialog1::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if (pMsg->message == WM_KEYDOWN)
{
switch (pMsg->wParam)
{
case VK_RETURN:
//MessageBox(_T("回车键按下"));
return TRUE;
case VK_ESCAPE:
//MessageBox(_T("ESC键按下"));
return TRUE;
default:
break;
}
}
return CDialog::PreTranslateMessage(pMsg);
}

http://blog.csdn.net/shuilan0066/article/details/5756704

回车键 响应的是CDilog::OnOk()函数,
重载此函数

ESC键 响应的是CDialog::OnCancel(),
重载...

最后窗口没法关了,再加个 OnClose 调用
CDialog::OnCancel() 或CDilog::OnOk() 即可

PreTranslateMessage方法 是正解,如果你无法实现,要么实现不对,提供代码上来;
要么需求非正常,请详细描述


华硕f455ld4210,esc快速启动怎么读不出带pe的u盘,如何解决?
尊敬的华硕用户您好,首先您要有一个正版的windows系统的纯净版镜像。然后用下面链接里面的微软提供的官方u盘制作工具,把镜像做到u盘里面去。需要准备一张4GB以上的u盘。http:\/\/rj.baidu.com\/soft\/detail\/24725.html 上一步完成了,把制作好的u盘插在机器的usb2.0接口上面。开机按ESC,会出现下面的...

如何解决空之轨迹FC剧终后的黑屏?
游戏的结尾一共有两段动画,一段结尾歌曲“星之所在”,一段SC的预告片。其实你可以在游戏程序的文件夹下找到ED6_DT17.dat和ED6_DT18.dat两个文件,使用暴风影音或Kmplayer即可观看。(在安装这两个播放器时请选择完整安装)如果想在游戏里看这两段动画的话,可以用如下的方法解决:下载K-Lite Mega...

电脑错误代码7000-4FC3是什么意思
黑客"用一些软件攻击所至。对互这种情况最好就是在自己的计算机上安装一些防御软件。再有就是登录BBS要进行安全设置,隐藏自己IP。四、 光驱在读盘时被非正常打开所至 这个现象是在光驱正在读取数据时,由于被误操作打开而导致出现蓝屏。这个问题不影响系统正常动作,只要再弹入光盘或按ESC键就可以。

电脑蓝屏后stop:0*000000fc重装系统后状况依然出现,是什么原因?可能是...
笔记本电脑,开机出现蓝屏,代码0x000000FC,能进入安全模式。 这种情况通常出现在笔记本电脑中,它们通常提供了单键关闭无线网卡的功能,而Windows并不能检测出无线网卡已被关闭,它只会向你报告无法找到可接入的网络。由于Windows XP的无线网络配置向导无法判断无线网卡的状态,这时你只能通过无线网卡的LED显示灯来进行判断。

FC重装机兵怎麼保存
1. 打开“Smynes 1.20”.2. 选择“设定”里的“输入装置”.3. 把“即时储存”和“即时读取”连个位置,设置成你需要的按键.4. 进入游戏中按你设置的“储存”和“读取”的两个键位,就可以保存了.比在游戏里保存方便多了.

我的电脑关机时出现蓝屏 stop:Ox000000FC(OxF9678B18 Ox01A6E163 OxF...
这个现象是在光驱正在读取数据时,由于被误操作打开而导致出现蓝屏。这个问题不影响系统正常动作,只要再弹入光盘或按ESC键就可以。以上是我在维护计算机中碰到导致蓝屏的几种原因,或许还会有其他一些莫名其妙的问题导致计算机出现蓝屏。不管怎样,遇到这类问题后,应先仔细分析问题发生的原因,然后再着手解决...

空之轨迹fc游戏中途自动退出
重新进一次就行了 我也遇到过这种问题,如果还不行的话就重新下一个FC中文版,网上应该有硬盘版的,或者你去安一个暴风影音,然后把打开所有兼容设置让你电脑上所有视频都用暴风影音播放,这样就可以了.那就重新下一个,http:\/\/www.verycd.com\/topics\/10701\/ 这是电驴的资源,下载需要安装电驴 ...

开不了机,出现这个画面,然后按esc后出现第二幅图
你这是主引导损坏或者丢失了,在第一张截图上选择第0项试试能不能启动 如果不能,重启不停点击F5,进入修复主引导的菜单,选择第一项,修复一下试试,如果修复好了可能需要从新激活windows 如果还不好,那建议你找个系统盘(U盘或光盘),修复一下MBR试试,如果还不行那就重装系统吧。

空之轨迹FC,怎么存档呀
点击右下角黄铜色圆形图标,再选右上角OPTION,再SAVE就可以啦!

空之轨迹fc攻略 结晶回路怎么装在导力气上
按住esc,选orbment(第三个),任意点击中间的一个已经开了的结晶孔(slots下面),就会出现选择结晶回路的窗口,点击即可装上,注意每个角色都有几个结晶孔有属性限制(艾斯蒂尔除外)希望可以帮到你,还不明白的话就追问吧,我至少每天过来看一次~...

东安区15614504920: MFC禁止响应ESC和回车,但不影响正常按键功能 -
柘拜卡尼: 在PreTranslateMessage里面,判断来的消息类型,如果是按下键盘的消息,并且是ESC或者是回车键,那么返回.其他的话,就还是使用基类的 PreTranslateMessage. BOOL CDialog1::PreTranslateMessage(MSG* pMsg) {// TODO: 在此添...

东安区15614504920: mfc怎样屏蔽Enter消息 -
柘拜卡尼: 经验证,回车键应该是 VK_RETURN,没有VK_ENTER这一项.被定义在里面.可以选中 VK_ESCAPE 并点击右键菜单项“Go to Difination of VK_ENTER(跳到...的定义)”查看其他键的定义.

东安区15614504920: 电脑开机需要按F1F10回车和ESC怎么取消设置 -
柘拜卡尼: 电脑开机需要按F1F10回车和ESC是由于BIOS设置错误,BIOS一般设置检测软驱,但现在一般电脑都没安装软驱,所以每次要确定进入,进入BIOS后把软驱设置成无,应该就可以了.具体的做法: 1、在开机时按DEL键进入BIOS,如图在Main设置项下,会看到Floppy A软驱设置项. 2、按上下键选择Floppy A 此项,然后按回车键弹出子菜单,选择(Disabled)再按回车键. 3、按F10保存设置,再按回车键重启电脑就行.

东安区15614504920: 如何使对话框不响应enter键与esc键 -
柘拜卡尼: 如果是MFC规则DLL,并且设置的“使用共享DLL中的MFC”,需要在导出函数入口处加上:AFX_MANAGE_STATE(AfxGetStaticModuleState());不过感觉不像是这个问题,先试试吧.

东安区15614504920: c MFC程序如何禁止自动关闭
柘拜卡尼: 是禁止按下回车和ESC键关闭吗?下次提问时把问题描述清楚. 两种方法: 1、重载CDialog类的OnOK()和OnCanCel()函数,在这两个函数中直接返回.不要调用CDialog::OnOK()和CDialog::OnCancel()即可. 2、重载CDialog类的...

东安区15614504920: mfc中如何取消系统自带的按钮与键盘的关联 -
柘拜卡尼: VOID OnOK(){ CDialog::OnOK();}VOID OnCancel(){ CDialog::OnCancel();}分别是按回车和ESC响应,删除里面这两个基类的函数就可以了,如果没有这两个事件,可以手动添加,...

东安区15614504920: C++如何防止按回车或者ESC键退出程序 -
柘拜卡尼: 如果是用VC++建立的基于对话框的程序的话,只需要重载对话框的OnOK()和OnCancel()函数,里面什么也不写就可以 头文件里面加入 void OnOK(); void OnCancel(); cpp中加入 void CMyDlg::OnOK() { } void CMyDlg::OnCancel() { }

东安区15614504920: MFC中, 对话框按ESC的话会把窗口给关了, 那怎么才能让它按了ESC不关闭? 虚函数里没有OnESC啊. -
柘拜卡尼: 重写PreTranslateMessage虚函数,将ESC键屏蔽掉:BOOL CDlg::PreTranslateMessage(MSG* pMsg) { if (pMsg->message==WM_KEYDOWN) { switch (pMsg->wParam) { case VK_ESCAPE: return TRUE; } } return CDialogEx::PreTranslateMessage(pMsg); }

东安区15614504920: 如何使对话框不响应enter键与esc键
柘拜卡尼: 一般情况下编写的对话框程序,用户在运行的时候,如果不注意按下了ENTER或者ESC键,程序就会立刻退出,之所以会这样,是因为按下Enter键时,Windows就会自动去找输入焦点落在了哪一个按钮上,当获得焦点的按钮的四周将被点线矩形包围.如果所有按钮都没有获得输入焦点,Windows就会自动去寻找程序或资源所指定的默认按钮(默认按钮边框较粗).如果对话框没有默认按钮,那么即使对话框中没有OK按钮,OnOK函数也会自动被调用,对于一个普通的对话框程序来说,OnOK函数的调用,以为着程序会立刻退出.

东安区15614504920: 如何去除MFC对话框Dialog中的ESC键关闭程序的功能 -
柘拜卡尼: 您好,我来为您解答:一开始的cancel按扭不要去掉,双击它加入命令OnCancel(),把OnCancel中调用父类去掉直接返回,这就没问题了如果你已经把按钮删掉,那就得手工加这个命令,但效果一样如果我的回答没能帮助您,请继续追问.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网