AfxMessageBox函数触发两次点击事件

时间:2017-04-05 18:14:15

标签: mfc messagebox

我有一个MFC应用程序,其中在单选按钮的事件处理程序中调用AfxMessageBox。只要在消息框上按下“是”,“否”或“取消”按钮关闭它,就会自动再次调用事件处理程序。这导致调用另一个AfxMessageBox实例。这次关闭消息框会导致定期流动。 根据我的应用程序的其他功能,单选按钮的“auto”属性设置为false。我想知道,为什么关闭消息框会导致与单选按钮事件处理程序相关的额外事件。

void CMFCApplication3Dlg::OnBnClickedRadio1()
{

    int answer;
    answer = AfxMessageBox(_T("Save Changes?"), MB_YESNOCANCEL);
    CheckRadioButton(IDC_RADIO1,IDC_RADIO2,IDC_RADIO1);
}

以下是步骤序列:

  • 单击单选按钮,控件进入事件处理函数 - OnBnClickedRadio1
  • 显示MessageBox(通过AfxMessageBox 调用)
  • 按“是”,“否”或“取消”按钮时,将显示消息框 消失,但控件返回到OnBnClickedRadio1 函数,不执行'CheckRadioButton'调用。
  • 消息框第二次出现。
  • 按“是”,“否”或“取消”按钮时,消息框将消失。这一次,'CheckRadioButton' 执行并且处理程序退出。

0 个答案:

没有答案