简体   繁体   中英

MFC Button Click is Responding to Escape Key

When the dialog is opened and the escape key is pressed, a button click event is firing, the dialog should dismiss not run the event.

I have inspected the Resources file in notepad to see what is happening, I have commented out the button in the message map, the issue goes away. I have no idea why this happening and I cannot find any presets in my code that would cause this to happen

Here is the Dialog in the Resources file

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

Here is the message map...

BEGIN_MESSAGE_MAP(CSurveyDlg, CDialogEx) ON_BN_CLICKED(IDC_SVYDLG_EXPORT, &CSurveyDlg::OnBnClickedExport) END_MESSAGE_MAP()

I expect the dialog to dismiss, export should only run when the button is clicked

If IDC_SVYDLG_EXPORT is defined as 2, it will be the same value as IDCANCEL , and the button will respond to Escape key to cancel the dialog.

ID numbers from 1 to 7 are reserved for standard buttons, IDOK, IDCANCEL, ...

It's recommended to use numbers in the range 100 up to 0x7000 for controls. MFC dialog editor may generate its own numbers in this range.

See also ID Naming and Numbering Conventions

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM