当前位置: 首页 > wzjs >正文

网站建设优化公司看b站视频下载软件

网站建设优化公司,看b站视频下载软件,淮安建设网站制作,html网页框架代码MFC多文档程序,从菜单关闭一个文档和直接点击右上角的x效果不同 若文档内容有修改,则前者会询问用户,是否保存修改;后者不保存修改直接关闭。 原因在于,从菜单关闭时,调用OnClose,一定会调用Sa…

MFC多文档程序,从菜单关闭一个文档和直接点击右上角的x效果不同

若文档内容有修改,则前者会询问用户,是否保存修改;后者不保存修改直接关闭。
原因在于,从菜单关闭时,调用OnClose,一定会调用SaveModified(),其源码如下

/
// Standard file menu commandsvoid CDocument::OnFileClose()
{if (!SaveModified())return;// shut it downOnCloseDocument();// this should destroy the document
}

而点击x关闭时,CanCloseFrame()函数会判断是否保存文档,其源码如下:

BOOL CDocument::CanCloseFrame(CFrameWnd* pFrameArg)// permission to close all views using this frame//  (at least one of our views must be in this frame)
{ASSERT_VALID(pFrameArg);UNUSED(pFrameArg);   // unused in release buildsPOSITION pos = GetFirstViewPosition();while (pos != NULL){CView* pView = GetNextView(pos);ASSERT_VALID(pView);CFrameWnd* pFrame = pView->GetParentFrame();// assume frameless views are ok to closeif (pFrame != NULL){// assumes 1 document per frameASSERT_VALID(pFrame);if (pFrame->m_nWindow > 0)return TRUE;        // more than one frame refering to us}}// otherwise only one frame that we know aboutreturn SaveModified();
}

可见,仅当父框架的窗口为0时才会执行SaveModified()语句,其余情况都只会返回TRUE。在使用多文档编程时,要注意为了文档的安全,在自己重载的CanCloseFrame()中加上SaveModified()语句。

如何默默保存,不询问用户?

CDocument::SaveModified()的实现如下:

BOOL CDocument::SaveModified()
{if (!IsModified())return TRUE;        // ok to continue// get name/title of documentCString name;if (m_strPathName.IsEmpty()){// get name based on captionname = m_strTitle;if (name.IsEmpty())VERIFY(name.LoadString(AFX_IDS_UNTITLED));}else{// get name based on file title of path namename = 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 continuecase IDYES:// If so, either Save or Update, as appropriateif (!DoFileSave())return FALSE;       // don't continuebreak;case IDNO:// If not saving changes, revert the documentbreak;default:ASSERT(FALSE);break;}return TRUE;    // keep going
}

可见,真正执行“保存”动作的是DoFileSave(),因此开发者可以考虑在用户进行某些动作时执行该函数,默默保存当前编辑结果,而无需弹出对话框让用户确认。

http://www.dtcms.com/wzjs/160074.html

相关文章:

  • 垂直版面网站国内seo工具
  • 动态ip做网站影响seo吗seo快速排名优化方式
  • 进一步加强政府网站建设的通知网站被禁用如何解决
  • 做网站用哪里的服务器比较好推广平台 赚佣金
  • 做网站做小程序推广发广告去哪个平台
  • wordpress主题php久久seo综合查询
  • 玫琳凯网站建设与推广方案网络营销的三种方式
  • 网站标题应怎设置seo技术培训
  • 实时更新|新冠肺炎疫情地图湖南网站seo地址
  • 网站建设策划书范本seo网络优化招聘
  • 高端品牌网站建设兴田德润在哪儿哪个平台可以免费推广
  • 怎么给幼儿园做网站中山做网站推广公司
  • 凡科免费网站建设百度竞价排名规则及费用
  • 中国十大网站开发公司公司企业网站开发
  • 网络公司制作网站正规赚佣金的平台
  • asp.net网站sql权限设置附近有没有学电脑培训的
  • 2012r2做网站媒体发稿费用
  • 陕西企业电脑网站制作网络推广项目
  • 湖北省政府网站集约化建设浙江网站推广
  • 扬州外贸网站seo怎么搜索网站
  • 铜仁建设公司网站石家庄市人民政府官网
  • 网站产品展示怎么做软文发稿系统
  • 北京出大大事了重庆快速排名优化
  • 合肥seo网站优化培训索引擎优化 seo
  • 推广方法和技巧选择宁波seo优化公司
  • 做网站卖什么产品利润高广告推广平台网站
  • 自考网站建设与实践网站seo排名优化软件
  • wordpress 多站点 主站点麒麟seo软件
  • 网站服务器 重启网店搜索引擎优化的方法
  • 昆山网站建设首页深圳sem优化