精华内容
下载资源
问答
  • 经查资料可以一下两种方法实现,谨供各位同志参考第种方法比较简单在Doc里面加入SaveModified()函数,这时关闭MDI框架或是单个文档时系统会提示你是否保存文档,前替是你已经重载了Serilize()函数.而且已经调用了...

    最近遇到一个问题,当点击框架的右上角的X按钮时,App不会提示保存文件对话框.

    经查资料可以一下两种方法实现,谨供各位同志参考

    第一种方法比较简单

    在Doc里面加入SaveModified()函数,这时当你关闭MDI框架或是单个文档时系统会提示你是否保存文档,前替是你已经重载了Serilize()函数.而且已经调用了SetModifiedFlag()

    第二种方法比较复杂一点

    是添加Doc的OnCloseDocument()函数
     
     CFileDialog dlg(FALSE,NULL,"MDI_Te1",OFN_OVERWRITEPROMPT,NULL,NULL);
       if(dlg.DoModal()==IDOK)
     {
      CFile mfile;
      mfile.Open(dlg.GetPathName(),CFile::modeWrite|CFile::modeCreate);
      CArchive ar(&mfile, CArchive::store);
      CMDI_Test1Doc::Serialize(ar);
      ar.Close();
      mfile.Close();
      return ;
     }
     else
     {
      return ;

    注意改方法前提是必须重载Doc的serialize()函数
    而且改方法有一个问题,当你关闭整个父窗口之后,保存对话框才会出来,这很不人性化,而且还要人工去添加SetModifiedFlag()和IsModified().

    本人建议用的一种方法,但是如果你想更灵活的运用CFileDialog,还是用第二种比较好,对于第二种的Bug欢

    迎各位提出宝贵意见.

    展开全文
  • 13如何在关闭应用程序自动保存文档到指定名称的文件按下应用程序框架上右上角的关闭按钮(带小叉的按钮),将引发框架窗口关闭消息,从而将调用框架类的CFrameWnd::OnClose()函数。voidCFrameWnd::OnClose()...

    13如何在关闭应用程序时自动保存文档到指定名称的文件

    当按下应用程序框架上右上角的关闭按钮(带小叉的按钮)时,将引发框架窗口的关闭消息,从而将调用框架类的CFrameWnd::OnClose()函数。

    void CFrameWnd::OnClose()

    {

       if (m_lpfnCloseProc != NULL && !(*m_lpfnCloseProc)(this))

            return;
     
        // Note: only queries the active document
        CDocument* pDocument = GetActiveDocument();

        if (pDocument != NULL && !pDocument->CanCloseFrame(this))

        {

            // document can't close right now -- don't close it

            return;
        }

        // ... ...

    }
    在得到当前的活动文档后,就调用文档类的CanCloseFrame(pFrame)函数。而这个函数继续调用基类的CDocument::CanCloseFrame(pFrame)函数。在这个函数里面最终调用CDocument:: SaveModified()函数。让我们仔细看看它的代码。

    BOOL CDocument::SaveModified()

    {
        if (!IsModified()) //如果文档没有被修改过则不保存

            return TRUE;        // ok to continue

     
        // get name/title of document
        CString name;
        if (m_strPathName.IsEmpty())
        {// m_strPathName是当前文档的路径(包括文件名)。因为在打开应用程序的时候就已经打开了一个叫做machine.mi的文件,所以它不是空字串。
            // get name based on caption
            name = m_strTitle;
            if (name.IsEmpty())
                VERIFY(name.LoadString(AFX_IDS_UNTITLED));
        }
        else
        {

            // get name based on file title of path name

            name = m_strPathName;
            if (afxData.bMarked4)
            {
                AfxGetFileTitle(m_strPathName,
     name.GetBuffer(_MAX_PATH), _MAX_PATH);
                name.ReleaseBuffer();
            }
        }
     
        CString prompt;

        AfxFormatString1(prompt, AFX_IDP_ASK_TO_SAVE, name);

        switch (AfxMessageBox(prompt, MB_YESNOCANCEL, AFX_IDP_ASK_TO_SAVE))

        {//如果文档被修改过,则此时弹出一个对话框来询问是否保存。
        case IDCANCEL:

            return FALSE;       // don't continue

     
        case IDYES:

            // If so, either Save or Update, as appropriate

            if (!DoFileSave())

                return FALSE;       // don't continue

            break;
     
        case IDNO:

            // If not saving changes, revert the document

            break;
     
        default:
            ASSERT(FALSE);
            break;
        }
        return TRUE;    // keep going
    }
    从上面的代码可以看到,如果要作到关闭应用程序时自动地保存修改过的文档,则必须在进入CDocument::SaveModified()之前就消除修改标记。但是如果消除了修改标记文档又不会被存储,所以必须在消除修改标记之前保存文档。保存文档的函数将能够自动地消除修改标记。在哪里进行这个工作好呢?在文档类的CanCloseFrame()函数中。可以在这个函数中调用文档类的OnSaveDocument(lpszPathName)函数。调用这个函数需要给出文件路径和文件名称。

    BOOL CMachineDoc::CanCloseFrame(CFrameWnd* pFrame)

    {
        if(IsModified()){
            CFile outfile;

            outfile.Open("machine.mi", CFile::modeCreate|CFile::modeReadWrite);

            CString strPath = outfile.GetFilePath();

            outfile.Close();

            OnSaveDocument(strPath); // 这个函数能自动地消除文档修改标记

        }
        return CDocument::CanCloseFrame(pFrame);
    }
     
    展开全文
  • word保存文件提示“文档被保存,但是语音识别的数据丢失…”使用word2003,在编辑完文档保存时,总是弹出窗口显示“文档被保存,但是语音识别的数据丢失,因为没有足够的空间存储这些数据。确保没有录音...

    word保存文件时提示“文档被保存,但是语音识别的数据丢失…”使用word2003,在编辑完文档要保存时,总是弹出窗口显示“文档被保存,但是语音识别的数据丢失,因为没有足够的空间存储这些数据。确保没有录音时关闭麦克风,并检查磁盘上的存储空间。”


    原因是word2003具有语音识别功能,解决方法:
    1.在“工具”菜单上,单击“选项”。
    2.在“选项”窗体中,单击“保存”页。
    3.在“保存”页中,单击“嵌入语言数据”复选项,使“嵌入语言数据”复选项,不被选中。
    4.在“选项”窗体中,单击“确定”按钮保存。

    展开全文
  • 在编辑完文档保存时,弹出窗口显示“文档被保存,但是语音识别的数据丢失,因为没有足够的空间存储这些数据。确保没有录音时关闭麦克风,并检查磁盘上的存储空间。” 工具——选项——保存——去掉“嵌入语音数据...

    在编辑完文档要保存时,弹出窗口显示“文档被保存,但是语音识别的数据丢失,因为没有足够的空间存储这些数据。确保没有录音时关闭麦克风,并检查磁盘上的存储空间。”

    工具——选项——保存——去掉“嵌入语音数据”勾——确定

     

    展开全文
  • Qt工具栏QToolBar、窗口布局的保存

    千次阅读 2017-05-09 16:17:28
    自己的想法是通过配置文件,保存一个 QToolBar位置,但始终未能找到,拖动工具栏移动的相应函数。 百般无奈,还是求助于帮助文档,最终在帮助文档中找到, QMainWindow中有函数saveGeometry()和saveState()来保存...
  • 我们再电脑上编辑word文档的过程中,要是突然没...具体方法如下:1、首先在电脑上打开wps word软件,然后打开之后新建一个word空白文档,其实这里不新建也可以,不过一般都是新建了文档再操作软件的。2、接着进入新...
  • 详解MFC框架窗口文档和视图

    万次阅读 2014-05-21 07:31:32
    尽管窗口文档和视图是MFC的基础,但可能也是最不容易理解的部分,因为其概念比传统编程所需要的Windows函数更强一些,因此,须在本章做进一步详细讨论框架窗口文档和视图的...口,每个应用程序只能有一个窗口,主
  • 使用VBA让Word或Excel文档窗口置顶

    千次阅读 2019-05-13 16:02:39
    在使用Word或Excel有时需要让窗口总是显示在最前面而不别的窗口挡住,虽然Word或Excel并没有提供这样的功能,但是在VBA中使用API函数“SetWindowPos”可以让窗口总在最前面,具体操作如下: 1. 打开需要置顶的...
  • 请问MFC推出程序的时候,如果用户更改了文档,则提示是否要保存文档,如果用户选择否,回到主界面不关闭程序
  • 本文的原文连接是: ... ... 1,问题 ...使用弹出窗口,只是进行显示和隐藏功能。...每次再创建新窗口的时候会保存上次的校验信息。 但是vue 是按照组件方式显示的,再新创建按钮的时候是不能访问di...
  • 首先创建一个空白的脚本文档,并保存在硬盘上某个位置。 首先创建一个空白的脚本文档,并保存在硬盘上某个位置。 接着输入脚本代码: //使用[while]创建一个循环语句,循环执行大括号里的动作。 //直到whil
  • Photoshop脚本 > 打开一个存在的文档

    千次阅读 2014-11-17 13:47:22
    首先创建一个空白的脚本文档,并保存在硬盘上某个位置。 首先创建一个空白的脚本文档,并保存在硬盘上某个位置。 接着输入脚本代码: //定义一个变量[sampleDoc],用来表示硬盘上的一个图片文档。 var sampleDo
  • SecureCRT 合并多个窗口(CRT一个窗口打开多个标签)的方法 方法一: 操作方法:在创建新的会话,勾选在一个标签页打开,如下图所示 英文版本 中文版本 方法二: 在使用方法一无效的情况下 操作方法: (1)在crt...
  • 文档新建、打开及关闭的过程

    千次阅读 2017-05-29 14:47:44
    应用程序类的InitInstance()函数在调用了...(1)构造文档对象,从磁盘中读取数据。 (2)构造主框架类CMainFrame类的对象,并创建该主框架窗口,但不显示。 (3)构造视图对象,并创建视图窗口,同样也不显示。
  • 在多文档界面中,去掉菜单栏:在子窗体的OnMDIActivate函数中,添加如下行:AfxGetMainWnd()->SetMenu(NULL);父窗体的最大化显示:在子窗体的OnCreateClient函数中,添加如下行:RECT rc; ::GetWindowRect(::...
  • 使用word2003,在编辑完文档保存时,总是弹出窗口显示“文档被保存,但是语音识别的数据丢失,因为没有足够的空间存储这些数据。确保没有录音时关闭麦克风,并检查磁盘上的存储空间。”原因是word2003具有语音识别...
  • C#记事本程序中:关闭窗体提示是否要保存现有内容的程序代码 关闭窗体,弹出消息框,提示是否要保存文本内容。点“是” 转到另存为对话框,点“否”直接关闭窗体,点“取消”取消窗体的关闭操作。private void...
  • 在平时的工作生活中,word文档是...Microsoft Word for Mac包括一个自动恢复选项,可以帮助您恢复未保存的Word文件。默认情况下它将自动打开,并每10分钟保存一次打开的Word文件。如果在处理文档时计算机死机或计算机崩
  • · MFC应用程序关闭窗口的顺序(非模态窗口) · MFC应用程序中打开模式对话框的函数调用顺序 · MFC应用程序中关闭模式对话框的顺序 · 打开无模式对话框的顺序     MFC应用程序中处理消息的顺序...
  • 点击窗口关闭按钮,触发相关事件! 有时候,在MFC程序退出之前,我们通常会提醒用户做一些事情,比如说保存窗口数据等。 解决方法: 在主窗口的cpp文件里: #include "afxpriv.h" BEGIN_MESSAGE_...
  • MFC应用程序关闭窗口的顺序(非模态窗口) ·  MFC应用程序中打开模式对话框的函数调用顺序 ·  MFC应用程序中关闭模式对话框的顺序 ·  打开无模式对话框的顺序     MFC应用...
  • extjs文档关闭并刷新父页面

    千次阅读 2017-07-04 17:00:06
    <!--XXX页面 --> ; charset=utf-8"%> String brandid = request.getParameter("documentid"); String panelid = request....//关闭当前文档 }; panel.add(grid); panel.doLayout(); panel.refresh(); });
  • 保存成a.bat文件 用鼠标拖住这文件到a.bat文件上松手试试; ( 13)D盘右击->属性->工具->开始检查->钩选上“自动修复文件系统错误”和“扫描并试图恢复坏扇区->开始修复磁盘,再删除试试; (14)下载...
  • windows下命令行窗口持续ping显示时间保存至日志(WIN10测试成功)前言创建.vbs和.bat文件运行及其他 ...首先创建一个文本文档名字为Ping.txt,内容如下: Dim args, flag, unsuccOut args="" otherout="" ...
  • 今天朋友的一个word文档不能编辑,查看一下,是设置了密码保护,最简单的办法,就是新建一个“空白文档”,把原文档内容复制粘贴过来,这样就很简单的解决了,但是原有的宏和格式将丢失一些,于是又到网上搜索了其他...
  • Emacs-019-文件保存关闭

    千次阅读 2018-01-04 23:43:27
    我使用的Emacs是一个GUI版本的,其实保存退出即使不了解处于习惯也能够解决。简单的保存退出自然是图形化的操作即可:  其实,在上面的界面中也能够看到相应的组合键操作了。C-x C-c。进一步看看这个组合键的...
  • MFC去掉窗口右上方最大化最小化关闭按钮
  • 06_多窗口文档编辑器(小钱版)[Qt开发][2012-03-07]

    千次阅读 热门讨论 2012-03-07 21:02:10
    程序名称:多窗口文档编辑器(Multiple Text Editor)  2. 运行环境:Window NT / 2000 / XP / VISTA / 7  3. 软件特色:能多窗口交互式编辑支持格式的文档。  4. 主要功能:编辑html、htm、pl

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 111,114
精华内容 44,445
关键字:

当一个文档窗口被关闭保存时