CDialog::OnCancel

当用户单击 取消 或按模式或无模式对话框时,的ESC键框架调用此方法。

virtual void OnCancel( );

备注

重写此方法执行操作(如将旧数据),当用户通过单击 取消 或按ESC键关闭对话框时。 默认值通过调用 EndDialog 并使 DoModal 返回IDCANCEL关闭有模式对话框。

如果实现在无模式对话框的 取消 按钮,必须重写 OnCancel 方法并对其中的 DestroyWindow。 不要调用基类的方法,即,因为它调用 EndDialog,将使对话框不可见,但不销毁它。

备注

不能重写此方法,当您在编译为在Windows XP下的过程中使用一 CFileDialog 对象。有关 CFileDialog的更多信息,请参见CFileDialog选件类

示例

void CSimpleDlg::OnCancel()
{
   // TODO: Add extra cleanup here

   // Ensure that you reset all the values back to the
   // ones before modification. This handler is called
   // when the user doesn't want to save the changes.

   if (AfxMessageBox(_T("Are you sure you want to abort the changes?"), 
      MB_YESNO) == IDNO)
   {
      // Give the user a chance if he has unknowingly hit the
      // Cancel button. If he says No, return. Don't reset. If
      // Yes, go ahead and reset the values and close the dialog.
      return; 
   }

   m_nMyValue = m_nPrevValue;
   m_pMyString = NULL; 

   CDialog::OnCancel();
}

要求

Header: afxwin.h

请参见

参考

CDialog选件类

层次结构图

CDialog::OnOK

CDialog::EndDialog