overload the OnClose event.

解决方案 »

  1.   

    在对话框类里,有一个OnDestory()函数
    利用他就可以了,
    请给分!
      

  2.   

    在对话框类中 有一个函数为:void CMyDlg::OnSysCommand(UINT nID, LPARAM lParam)
    {
    if ((nID & 0xFFF0) == IDM_ABOUTBOX)
    {
    CAboutDlg dlgAbout;
    dlgAbout.DoModal();
    }
    else if( nID == SC_CLOSE )
    {
    //在些添加询问对话框,并根据不同选择做相应处理
    //要注意的是完成相应的存盘之后
    CDialog::OnSysCommand(nID, lParam);
    }
    else
    {
    CDialog::OnSysCommand(nID, lParam);
    }
    }
      

  3.   

    我找不到ONSYSCOMMAND,只有ONCOMMAND,好象不行,请问该怎么办?
      

  4.   

    很多方法:
     zhguo676(zhguo)的在OnDestory()函数里做也可以
    建议在OnCancel里做,具体方法是:
    先放一个id为IDCANCEL的按钮(默认对话框有这个按钮),然后双击这个按钮写OnCancel代码就可以了
      
     
      

  5.   

    每个默认的对话框都有一个"确定"和"放弃"健,重载"放弃"的OnCancel
    在其中加入代码即可
      

  6.   

    我所用的:
    void CPlayListDlg::OnClose() 
    {
    // CDialog::OnClose (); int retval = MessageBox("是否要保存?" "保存",MB_YESNOCANCEL|MB_ICONQUESTION|MB_APPLMODAL);
    if(retval== IDCANCEL)
    {
                   AfxMessageBox("取消");
          return;
    }
    else if (retval == IDYES)
    {
                  AfxMessageBox("保存");
    }
    //else(IDNO), do nothing!         AfxMessageBox("不保存"); CPlayListDlg::DestroyWindow ();
    }
      

  7.   

    int retval = MessageBox("是否要保存?",//不好意思,刚才少了个,
    "保存",
    MB_YESNOCANCEL|MB_ICONQUESTION|MB_APPLMODAL);
      

  8.   

    CFileDialog Dlg_Save(FALSE)
    if(Dlg_Save.DoModal()==IDOK)
      {
        CString filepath=Dlg_Save.GetPathName();
    ......  }
      

  9.   

    你只是说 出现“询问”是否要存盘的对话框?,呵呵~~
    我写的只是演示 “退出时询问”,要“出现象其他应用
    程序中的要保存时问你文件名”的话把小张写的放到
    AfxMessageBox("保存");后,在加上保存的过程!