当打开对话框并按下退出键时,将触发按钮单击事件,对话框应该关闭而不是运行该事件。
我检查了记事本中的资源文件以查看发生了什么,我注释掉了消息映射中的按钮,问题消失了。我不知道为什么会发生这种情况,而且我在我的代码中找不到任何会导致这种情况发生的预设
这是资源文件中的对话框
IDD_SVGDLG 对话 0, 0, 675, 462
样式 DS_SETFONT | DS_固定系统 | WS_POPUP | WS_SYSMENU
字体 8,“MS Shell Dlg”,400、0、0x1
开始
按钮“导出到文件”,IDC_SVYDLG_EXPORT,173,431,62,24
结束
这是消息映射...
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 对话框编辑器可能会在此范围内生成自己的编号。
关于c++ - MFC 按钮单击响应转义键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57858871/