我想在VC中实现关闭当前窗口但不退出整个主程序的功能,在网上找了一阵但都是C#啊JAVA方面的,在VC中要实现如上功能如何写程序呢?有现成的类吗?最好带退出确认询问的对话框.询问"尚未保存,真的要退出吗?"如果点是,就关闭当前而不保存所有;如果点否就退出但保存;如果点取消就保持原样(不退出也不关闭当前窗口).多谢赐教!:)

解决方案 »

  1.   

    更贴切地说应该是:关闭时只是关掉了当前打开的所有对象,而主程序框架还在(就如何第一次打开时一样,什么都还没有打开的原始状态).因为我开发的是一个CAD软件.我想按了"关闭"按钮后我之前打开的零件被清除掉,但不退出整个程序.如同PROE里的"拭除">>>"当前"和"拭除">>>"不显示"的两个操作般.只是将当前打开的零件和进程中的删除掉.不是如何一些小软件的托盘最小化而已.
      

  2.   

    其实就是自己处理WM_CLOSE消息,想DestroyWindow就用,不用就直接返回
      

  3.   

    如下:
    public   void   windowClosing(WindowEvent   e) 
         {  
             DialogResult   result=MessageBox.Show("确认要离开?","提示",
    MessageBoxButtons.YesNo,MessageBoxIcon.Question);   
    if(result==DialogResult.Yes)   
     e.Cancel=false;   
     else   
     e.Cancel=true;
          }
    但这是用JAVA做的,现在我想用VC.MFC里有哪个类类似于上面这个DialogResult的吗?有类似用法吗?
      

  4.   

    文档视图类可以不打开任何文档
    关闭所有documents 
    theApp.CloseAllDocuments(FALSE); 
    退出要确认的话可以在Doc类中重载CanCloseFrame(CFrameWnd* pFrame) 
    //退出程序
    POSITION pos = GetFirstViewPosition();
    CXXXView* pView = (CXXXView*)GetNextView(pos);
    if (pView->IsResultFileModify() || pView->m_IsModified)
    {
    int t;
    t=::MessageBox(NULL,"标引单已经修改,要保存你的修改吗?","警告",
    MB_YESNOCANCEL | MB_ICONWARNING);    //弹出提示对话框
    if(t==0 || t==IDCANCEL)
    return false;
    if(t==IDYES)
    pView->SaveYuanwenFile();
    }
    return CDocument::CanCloseFrame(pFrame);
      

  5.   

    重载主窗口的
    OnDestroy();
    直接返回就可以了
      

  6.   

    多谢qiujian5628(浪迹天涯)和ralphvsclark(微笑)网友先.
    我试过qiujian5628(浪迹天涯)网友说的"关闭所有documents 
    theApp.CloseAllDocuments(FALSE); "
    但没有效果耶:<
    对于重载CanCloseFrame,我会试试看的.谢谢.
    ralphvsclark(微笑)说的重载OnDestroy();也没有效,不知是本人写的不好还是什么原因了:<
    还是要谢谢两位:)
      

  7.   

    MFC的多文档能符合你的要求吗?
      

  8.   

    响应一下WM_CLOSE事件,将界面藏起来:ShowWindow(SW_HIDE);再返回FASE