zoukankan      html  css  js  c++  java
  • SDI自动提示文件保存 调试心得


    问题:

           一个MFC –SDI程序在关闭的时候自动提示”是否保存对XXX的更改”,而本身不希望出现这样的提示。同时发现,在打开一个文档后,再打开一个文档,同样会出现这样的提示。

    解决过程:

    1、         在void CMainFrame::OnClose()中插入断点,发现提示对话框是通过CFrameWndEx::OnClose()产生的。

    2、         追踪CFrameWndEx::OnClose()函数的实现,发现该函数的实现是在afxframewndex.cpp文件中。将该文件通过vs打开,进行跟踪,发现提示是在CFrameWnd::OnClose()函数中产生的。

    3、         继续追踪,发现是在winfrm.cpp中实现的。该函数为:



     

    发现该函数中的pDocument->CanCloseFrame(this)产生了是否保存的提示。

     

    4、         于是在Doc类中重写虚函数BOOL CDoc::CanCloseFrame(CFrameWnd* pFrame)为:



     

    再次编译,发现关闭SDI时不再有保存的提示。

    5.针对非第一次打开的文档提示保存的问题,原因在于文件的修改被自动地记录了。只要将自动记录的变量置为无效即可。可在CView类OnDraw()函数中添加以下代码:



    至此问题解决。

     

  • 相关阅读:
    课题:快速建立自己的外链资源圈
    【干货分享】常用端口服务对照表
    【经验分享(续篇)】Trachtenberg system(特拉亨伯格速算系统)
    网站渗透测试原理及详细过程
    渗透测试入门DVWA 教程1:环境搭建
    CTF---密码学入门第七题 杯酒人生
    CTF---密码学入门第六题 古典密码
    CTF---密码学入门第五题 传统知识+古典密码
    CTFCrackTools在Windows下显示A Java Exception has occurred的解决方案
    CTF---密码学入门第四题 困在栅栏里的凯撒
  • 原文地址:https://www.cnblogs.com/johnpher/p/2570613.html
Copyright © 2011-2022 走看看