关于对话框的ESC,Enter,F1键的问题

walkman 2000-06-28 10:56:00
在用VC资源生成的dialog中,怎样让ESC,Enter,F1键不执行缺省的操作?
请大虾们多帮忙!
...全文
324 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
walkman 2000-06-28
  • 打赏
  • 举报
回复
能具体点吗,在PreTransMessage()中怎样能判断键盘消息?多谢!
whongshu 2000-06-28
  • 打赏
  • 举报
回复
ESC最终要调用OnCancel(),ENTER要调用DEFAULT BUTTON的OnClick,F1要调用HELP,可以在PreTransMessage()中处理
舟中夜起 2000-06-28
  • 打赏
  • 举报
回复
你在WM_CLOSE消息中添加CDialog::OnCancel();
就OK了:)

void CTestHelpDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
CDialog::OnCancel();
CDialog::OnClose();
}
walkman 2000-06-28
  • 打赏
  • 举报
回复
多谢!
但是“//CDialog::OnCancel();“后,
用ALT+F4关闭不了对话框,怎么办?
舟中夜起 2000-06-28
  • 打赏
  • 举报
回复
F1:WinHelp消息处理函数(在ClassWizar中找WinHelp消息)
void CMyDlg::WinHelp(DWORD dwData, UINT nCmd)
{
//CDialog::WinHelp(dwData, nCmd);
}

记得给我加分:)
舟中夜起 2000-06-28
  • 打赏
  • 举报
回复
ESC:把Cancel按钮的消息处理函数中的CDialog::OnCancel()屏蔽掉,如没有Cancel键,自己添加
void CMyDlg::OnCancel()
{
// TODO: Add extra cleanup here

//CDialog::OnCancel();
}
Enter:为Ok按钮
void CMyDlg::OnOK()
{
// TODO: Add extra validation here

//CDialog::OnOK();
}
F1待定:)
walkman 2000-06-28
  • 打赏
  • 举报
回复
我已试过WM_CHAR,WM_KEYDOWN,WM_SYSKEYDOWN,WM_HOTKEY,
有的能得到消息,确无法阻止缺省操作,请有经验的高手指点,
以免在下绕弯子,多谢!
walkman 2000-06-28
  • 打赏
  • 举报
回复
我已试过WM_KEYDOWN,WM_KEYUP,WM_SYSKEYDOWN,WM_HOTKEY,WM_CHAR,
能截取消息,但无法阻止缺省的操作,请有经验的高手指点一下。多谢!
PatrickGamp 2000-06-28
  • 打赏
  • 举报
回复
注意MSG结构中的各成员.message,wParam,lParam是非常重要的.
但愿以后再也没人提关于这个的问题了.
f1 显示当前程序或者windows的帮助内容。 f2 当你选中一个文件的话,这意味着“重命名” f3 当你在桌面上的时候是打开“查找:所有文件” 对话框 f10或alt 激活当前程序的菜单栏 windows或ctrl+esc 打开开始菜单 ctrl+alt+delete 在win9x中打开关闭程序对话框 delete 删除被选择的选择项目,如果是文件,将被放入回收站 shift+delete 删除被选择的选择项目,如果是文件,将被直接删除而不是放入回收站 ctrl+n 新建一个新的文件 ctrl+o 打开“打开文件”对话框 ctrl+p 打开“打印”对话框 ctrl+s 保存当前操作的文件 ctrl+x 剪切被选择的项目到剪贴板 ctrl+insert 或 ctrl+c 复制被选择的项目到剪贴板 shift+insert 或 ctrl+v 粘贴剪贴板中哪谌莸降鼻拔恢? alt+backspace 或 ctrl+z 撤销上一步的操作 alt+shift+backspace 重做上一步被撤销的操作 windows+m 最小化所有被打开的窗口。 windows+ctrl+m 重新将恢复上一项操作前窗口的大小和位置 windows+e 打开资源管理器 windows+f 打开“查找:所有文件”对话框 windows+r 打开“运行”对话框 windows+break 打开“系统属性”对话框 windows+ctrl+f 打开“查找:计算机”对话框 shift+f10或鼠标右击 打开当前活动项目的快捷菜单 shift 在放入cd的时候按下不放,可以跳过自动播放cd。在打开word的时候按下不放,可以跳过自启动的宏 alt+f4 关闭当前应用程序 alt+spacebar 打开程序最左上角的菜单 alt+tab 切换当前程序 alt+esc 切换当前程序 alt+enter 将windows下运行的msdos窗口在窗口和全屏幕状态间切换 print screen 将当前屏幕以图象方式拷贝到剪贴板 alt+print screen 将当前活动程序窗口以图象方式拷贝到剪贴板 ctrl+f4 关闭当前应用程序中的当前文本(如word中) ctrl+f6 切换到当前应用程序中的下一个文本(加shift 可以跳到前一个窗口) 在ie中: alt+right arrow 显示前一页(前进) alt+left arrow 显示后一页(后退) ctrl+tab 在页面上的各框架中切换(加shift反向) f5 刷新 ctrl+f5 强行刷新 目的快捷 激活程序中的菜单栏 f10 执行菜单上相应的命令 alt+菜单上带下划线的字母 关闭多文档界面程序中的当 前窗口 ctrl+ f4 关闭当前窗口或退出程序 alt+ f4 复制 ctrl+ c 剪切 ctrl+ x 删除 delete 显示所选对话框项目的帮助 f1 显示当前窗口的系统菜单 alt+空格 显示所选项目的快捷菜单 shift+ f10 显示“开始”菜单 ctrl+ esc 显示多文档界面程序的系统 菜单 alt+连字号(-) 粘贴 ctr l+ v 切换到上次使用的窗口或者 按住 alt然后重复按tab, 切换到另一个窗口 alt+ tab 撤消 ctrl+ z 二、使用“windows资源管理器”的快捷 目的快捷 如果当前选择展开了,要折 叠或者选择父文件夹左箭头 折叠所选的文件夹 num lock+负号(-) 如果当前选择折叠了,要展开 或者选择第一个子文件夹右箭头 展开当前选择下的所有文件夹 num lock+* 展开所选的文件夹 num lock+加号(+) 在左右窗格间切换 f6 三、使用 windows 可以使用 microsoft自然盘或含有 windows徽标的其他任何兼容盘的以下快捷。 目的快捷 在任务栏上的按钮间循环 windows+ tab 显示“查找:所有文件” windows+ f 显示“查找:计算机” ctrl+ windows+ f 显示“帮助” windows+ f1 显示“运行”命令 windows+ r 显示“开始”菜单 windows 显示“系统属性”对话框 windows+ break 显示“windows资源管理器” windows+ e 最小化或还原所有窗口 windows+ d 撤消最小化所有窗口 shift+ windows+ m 四、使用“我的电脑”和“windows资源管理器”的快捷 目的快捷 关闭所选文件夹及其所有父 文件夹按住 shift再单击“关闭按钮(仅适用于“我的电脑”) 向后移动到上一个视图 alt+左箭头 向前移动到上一个视图 alt+右箭头 查看上一级文件夹 backspace 五、使用对话框中的快捷 目的快捷 取消当前任务 esc 如果当前控件是个按钮,要 单击该按钮或者如果当前控 件是个复选框,要选择或清 除该复选框或者如果当前控 件是个选项按钮,要单击该 选项空格 单击相应的命令 alt+带下划线的字母 单击所选按钮 enter 在选项上向后移动 shift+ tab 在选项卡上向后移动 ctrl+ shift+ tab 在选项上向前移动 tab 在选项卡上向前移动 ctrl+ tab 如果在“另存为”或“打开” 对话框中选择了某文件夹, 要打开上一级文件夹 backspace 在“另存为”或“打开”对 话框中打开“保存到”或 "查阅” f4 刷新“另存为”或“打开” 对话框 f5 六、使用“桌面”、“我的电脑”和“windows资源管理器”快捷 选择项目时,可以使用以下快捷。 目的快捷 插入光盘时不用“自动播放” 功能按住 shift插入 cd-rom 复制文件按住 ctrl拖动文件 创建快捷方式按住 ctrl+shift拖动文件 立即删除某项目而不将其放入 shift+delete “回收站” 显示“查找:所有文件” f3 显示项目的快捷菜单 application 刷新窗口的内容 f5 重命名项目 f2 选择所有项目 ctrl+ a 查看项目的属性 alt+ enter或 alt+双击 可将 application用于 microsoft自然盘或含有 application的其他兼容 七、microsoft放大程序的快捷 这里运用windows徽标和其他的组合。 快捷目的 windows徽标+print screen将屏幕复制到剪贴板(包括鼠标光标) windows徽标+scroll lock将屏幕复制到剪贴板(不包括鼠标光标) windows徽标+ page up切换反色。 windows徽标+ page down切换跟随鼠标光标 windows徽标+向上箭头增加放大率 windows徽标+向下箭头减小放大率 八、使用辅助选项快捷 目的快捷 切换筛选开关右shift八秒 切换高对比度开关左alt+左shift+print screen 切换鼠标开关左alt+左shift+num lock 切换粘滞开关 shift五次 切换切换开关 num lock五秒

16,550

社区成员

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

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

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