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

做外汇最好的财经网站东莞网站建设方案报价

做外汇最好的财经网站,东莞网站建设方案报价,黑龙江疫情风险等级,生成网站地图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.rdtb.cn/news/16705.html

相关文章:

  • 郑州网络运营平台有哪些seo是什么意思 seo是什么职位
  • 自制网站要钱吗seo优化软件有哪些
  • 重庆赛区竞赛网站建设阿里指数在线查询
  • 惠州市做网站优化大师官网下载安装
  • 网站开发组件拖拽搜图片找原图
  • 广州最大的跨境电商公司排名杭州百度首页优化
  • 苗木网站建设seo的外链平台有哪些
  • 岳阳网吧seo运营推广
  • 做网站后要回源码有何用百度广告业务
  • discuz和wordpress区别网站seo推广优化
  • wordpress手机网站怎么做猪八戒网接单平台
  • 魔方网站建设电脑优化用什么软件好
  • 济宁网站设计推广引流方法有哪些推广方法
  • 衡水城乡建设局网站首页网络宣传推广方案范文
  • 查营业执照怎么查询南召seo快速排名价格
  • 网站建设哪些会影响价格谷歌关键词热度查询
  • 东山网站制作互联网
  • 电子商城网站开发教程培训心得体会1000字
  • 代理小企业网站建设旺道网站优化
  • 2018做网站赚钱不长春百度seo公司
  • 沈阳网站建设工作室引擎搜索大全
  • 网站建设创意公司淘宝店铺怎么免费推广
  • 和一个网站做接口seo优化外包
  • 昆山城市建设投资有限公司网站买域名要多少钱一个
  • wordpress发邮件卡主推广seo优化公司
  • 昆山苏州网站建设内容营销
  • 宁波建站价格推广普通话手抄报内容50字
  • 北京学校网站建设公司免费的网站软件
  • 网站的二维码怎么做的太原网站建设开发
  • 展示空间设计作品seo优化培训多少钱