当关闭MDI窗口时弹出保存文件对话框

原创 2006年06月21日 11:58:00

最近遇到一个问题,当点击框架的右上角的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欢

迎各位提出宝贵意见.

java 实现文件下载时,弹出文件保存窗口(IE9)

public static void downloadLocal(HttpServletRequest request,HttpServletResponse response, String ...
  • ying890
  • ying890
  • 2015年07月16日 17:05
  • 2066

结合jQuery的unload方法实现JS退出页面弹出对话框

http://www.rainweb.cn/article/113.html 注:经验证有效。 如果在退出页面时需要弹出对话框,提示用户将要退出页面,类似当设置某个功能时而没有保存...
  • zxygww
  • zxygww
  • 2015年08月13日 16:23
  • 1298

matlab gui(三)对话框(文件打开/保存对话框,进度条)

matlab gui(三)对话框(文件打开/保存对话框,进度条)
  • u010510134
  • u010510134
  • 2016年03月19日 17:23
  • 1414

Duilib 弹出子对话框

要在Duilib中弹出子对话框,首先定义一个需要弹出的自对话框的类,例子如下: class CInstall : public CWindowWnd, public INotifyUI, public...
  • a1317338022
  • a1317338022
  • 2017年02月16日 14:25
  • 1187

Unity3d制作一个简单的打开保存对话框-按钮2

上次我们提到创建控制整个面板的UIFindDirectory的脚本,我们依然还是先从功能分析起来。在整个UI面板当中,最重要的是打开或者保存文件这样的按钮,因此我们先从这几个按钮需要实现的这些功能做起...
  • qq_16013649
  • qq_16013649
  • 2015年05月30日 00:12
  • 1543

Windows下,文件(夹)选择/打开对话框的三种创建方式

Windows编程时,常用到打开文件(夹)对话框,选择文件或者多个文件的功能。Windows提供了好几种方式,现在做个总结,也好方便以后的使用。...
  • wutong_xingkong
  • wutong_xingkong
  • 2017年01月03日 20:49
  • 780

Unity3d制作一个简单的打开保存对话框-编写核心代码(1)

使用Unity3d制作一个简单的打开保存对话框-编写核心代码   前言: 前面我曾经提到过使用unity3d调用windows的打开和保存对话框的功能,但是我们发现这样在unity中可能会出现崩...
  • qq_16013649
  • qq_16013649
  • 2015年05月28日 23:05
  • 1561

苹果开发 笔记(67)模态弹出和退出窗口

平时在玩QQ或者看优酷的APP的的时候,一直很好奇这种弹出窗口是怎样做。在对比一些应用后,发现很多设置界面都有类似这样效果,弹出后以一个小窗口半透明的形式展示,同时也发现窗口大小也很类似。百度一下,发...
  • hero82748274
  • hero82748274
  • 2015年08月31日 20:05
  • 1215

C# Winform MDI窗体,父窗体控件覆盖子窗体的解决办法

问题:MDI窗体中,父窗体控件会覆盖子窗体,网上很多解决方案表面上解决了问题,但失去了MDI窗体的基本特性,并不实用。比较赞成使用子窗体“代替”父窗体控件的方案。思路:不将控件放置在父窗体上,而是放在...
  • lj22377
  • lj22377
  • 2015年09月14日 15:37
  • 2236

selenium+python 自动化测试,下载文件过程中出现对话框问题的处理

近来,学习selenium ,下载文件过程中,浏览器会弹出对话框。遇到这种情况,笔者综合网上的教程,写出注意事项。 笔者的环境是:win 7 64位 +python 3.6 +Firefox 50.0...
  • qq_22821275
  • qq_22821275
  • 2017年06月06日 15:28
  • 848
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:当关闭MDI窗口时弹出保存文件对话框
举报原因:
原因补充:

(最多只允许输入30个字)