按关闭能弹出关闭“确定/取消”对话框,然后按确定不关闭,跟按取消键一个效果。
void CFileDialogDlg::OnClose() 
{
  if(MessageBox("确定要退出应用程序吗?","系统提示",MB_OKCANCEL|MB_ICONQUESTION)!=IDOK)
return; 

CDialog::OnClose();
}

解决方案 »

  1.   

    调试一下,有没有执行到 CDialog::OnClose();
      

  2.   

    CDialog::OnClose();
    这句换成CDialog::OnCancel(); 试试
      

  3.   

    不是吧,你CDialog::onClose();也关闭不了???
      

  4.   

    你还是设个断点调试下,看看if(MessageBox("确定要退出应用程序吗?","系统提示",MB_OKCANCEL|MB_ICONQUESTION)!=IDOK)
    return; 语句生效没有哦。
      

  5.   


    void CFileDialogDlg::OnClose()  
    {
     //试试这个
    if(IDOK!=AfxMessageBox(_T("确定要退出吗?"),MB_OKCANCEL)
    return;  CDialog::OnClose();
    }
      

  6.   

    if(MessageBox("确定要退出应用程序吗?","系统提示",MB_OKCANCEL|MB_ICONQUESTION)==1)
    {
       CDialog::OnClose();
    //   CDialog::OnCancel();
    //两个里试一个
    }
      

  7.   

    靠,这么多人眼神都不好
    void CFileDialogDlg::OnClose() 
    {
     if(MessageBox("确定要退出应用程序吗?","系统提示",MB_OKCANCEL|MB_ICONQUESTION)!=IDOK)
    return;
    //这里都返回了就不执行下面的了,还能关闭吗 
    CDialog::OnClose();
    }
      

  8.   

    不要放到WM_CLOSE这个消息里面,用一个按扭试一试
      

  9.   

    你没有看到return;前面有个if语句吗?
      

  10.   

    if(MessageBox("确定要退出应用程序吗?","系统提示",MB_OKCANCEL|MB_ICONQUESTION)!=IDOK)
    return;
    //这里都返回了就不执行下面的了,还能关闭吗 
    ======================
    楼主的意思是点“确定”,那么就不会执行return了。
      

  11.   

    搞错了,是我自己眼神不好,不好意思
    应该用响应的是OnCancel()void CFileDialogDlg::OnCancel()
    {
     
    if(MessageBox("确定要退出应用程序吗?","系统提示",MB_OKCANCEL|MB_ICONQUESTION)==IDOK)
    CDialog::OnCancel();
    }
      

  12.   

    楼主应该是处理WM_CLOSE消息的,代码应该没有问题,我实验的结果也是正常的
      

  13.   

    换成oncancel就可以了..不知道是怎么回事。void CFileDialogDlg::OnClose() 
    {
      if(MessageBox("确定要退出应用程序吗?","系统提示",MB_OKCANCEL|MB_ICONQUESTION)!=IDOK)
    return; 

    CDialog::OnCancel();
    }
      

  14.   

    因为你想实现的效果就是:"按下[确定]而不关闭, 和按下"Cancel"一样的效果"啊,再仔细想想吧