MFC 按钮单击响应转义键

MFC Button Click is Responding to Escape Key

当打开对话框并按下退出键时,将触发按钮单击事件,对话框应该关闭而不是 运行 事件。

我检查了记事本中的资源文件以查看发生了什么,我注释掉了消息映射中的按钮,问题消失了。我不知道为什么会发生这种情况,而且我在我的代码中找不到任何会导致这种情况发生的预设

这是资源文件中的对话框

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键取消对话框。

ID号1到7为标准按钮保留,IDOK, IDCANCEL, ...

建议使用 1000x7000 范围内的数字作为控件。 MFC 对话框编辑器可能会在此范围内生成自己的编号。

另见 ID Naming and Numbering Conventions