c++ - MFC 按钮单击响应转义键

标签 c++ mfc

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

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

这是资源文件中的对话框

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, ...

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

另见 ID Naming and Numbering Conventions

关于c++ - MFC 按钮单击响应转义键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57858871/

相关文章:

C++:将结构成员视为数组

c++ - 在MFC图片框中显示IPLimage/MAT(opencv)

c++ - 更改最近文件的总数

c++ - CDC::Ellipse 无法正确绘制圆圈

c++ - 指示 Qi 转换属性失败的正确方法是什么?

c++ - 分配控制台();与 GetAsyncKeyState();

c++ - 依赖注入(inject)和运行时对象创建

C++ 单引号语法

c++ - 如何在 OnInitDialog 函数中最小化 MFC 应用程序?

c++ - 如何填充贝塞尔曲线gdi c