c++ - MFC 按钮单击响应 Escape 键
问题描述
当打开对话框并按下转义键时,会触发按钮单击事件,对话框应该关闭而不是运行该事件。
我检查了记事本中的资源文件以查看发生了什么,我已经注释掉了消息映射中的按钮,问题就消失了。我不知道为什么会发生这种情况,并且在我的代码中找不到任何会导致这种情况发生的预设
这是资源文件中的对话框
IDD_SVGDLG DIALOGEX 0, 0, 675, 462
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_SYSMENU
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
PUSHBUTTON "Export to File",IDC_SVYDLG_EXPORT,173,431,62,24
END
这是消息映射...
BEGIN_MESSAGE_MAP(CSurveyDlg, CDialogEx)
ON_BN_CLICKED(IDC_SVYDLG_EXPORT, &CSurveyDlg::OnBnClickedExport)
END_MESSAGE_MAP()
我希望对话框关闭,导出应该只在单击按钮时运行
解决方案
如果IDC_SVYDLG_EXPORT
定义为 2,则与 相同IDCANCEL
,按钮会响应 Escape 键取消对话框。
从 1 到 7 的 ID 号是为标准按钮保留的,IDOK, IDCANCEL, ...
建议使用范围内的数字100
进行0x7000
控制。MFC 对话框编辑器可能会在此范围内生成自己的编号。
另请参阅ID 命名和编号约定
推荐阅读
- javascript - 使用 node.js 渲染 svg 路径数据服务器端
- python - 将值数组传播到函数调用中的参数
- c# - 在多线程应用程序中正确管理 DbContext
- java - Apache Avro Maven 插件生成 UUID 字段而不是字符串
- php - 我希望你帮助我,以便我可以将 md5 函数与 php 中的字符串变量连接起来
- bash - 如何通过匹配数据来组合两个文件的内容
- jasmine - 如何在并行执行量角器测试脚本时生成合并报告?
- xml - 如何在 XSLT 中进行复杂的条件处理
- ios - SwiftUI @Binding 初始化
- python - 用于计算文件哈希的异步编程