1 / 11
文档名称:

MFC中应用程序的退出问题.doc

格式:doc   大小:83KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

MFC中应用程序的退出问题.doc

上传人:iris028 2019/12/6 文件大小:83 KB

下载得到文件列表

MFC中应用程序的退出问题.doc

相关文档

文档介绍

文档介绍:,一般是进入消息循环,等待或者处理用户的输入,直到用户关闭应用程序窗口,退出应用程序为止。例如,用户按主窗口的关闭按钮,或者选择执行系统菜单“关闭”,或者从“文件”菜单选择执行“退出”,都会导致主窗口被关闭。当用户从“文件”菜单选择执行“退出”时,将发送MFC标准命令消息ID_APP_EXIT。MFC实现了函数CWinApp::OnAppExit()来完成对该命令消息的缺省处理。voidCWinApp::OnAppExit(){//sameasdouble-clickingonmainwindowcloseboxASSERT(m_pMainWnd!=NULL);m_pMainWnd->SendMessage(WM_CLOSE);}可以看出,其实现是向主窗口发送WM_CLOSE消息。主窗口处理完WM_CLOSE消息之后,关闭窗口,发送WM_QUIT消息,退出消息循环(见图5-3),进而退出整个应用程序。::OnClose来处理各类边框窗口的关闭:不仅包括SDI的边框窗口(从CFrameWnd派生),而且包括MDI的主边框窗口(从CMDIFrameWnd派生)或者文档边框窗口(从CMDIChildWnd派生)的关闭。该函数的原型如下,流程如图6-1所示:voidCFrameWnd::OnClose()从图6-1中可以看出,它首先判断是否可以关闭窗口(m_lpfnCloseProc是函数指针类型的成员变量,用于打印预览等情况下),然后,根据具体情况进行处理:l如果是主窗口被关闭,则关闭程序的所有文档,销毁所有窗口,退出程序;l如果不是主窗口被关闭,则是文档边框窗口被关闭,又分两种情况:若该窗口所显示的文档被且仅被该窗口显示,则关闭文档和文档窗口并销毁窗口;若该窗口显示的文档还被其他文档边框窗口所显示,则仅仅关闭和销毁文档窗口。下面是处理WM_CLOSE消息中涉及的一些函数。lBOOLCDocument::SaveModified()该虚拟函数的缺省实现:首先调用IsModifed判断文档是否被修改,没有修改就返回,否则继续。当询问用户是否保存被修改的文档时,若用户表示“cancel”,返回FALSE;若用户表示“no”,则返回TRUE;若用户表示“yes”,则存盘失败返回FALSE,存盘成功返回TRUE。存盘处理首先要得到被保存文件的名称,然后调用虚拟函数OnSaveDocument完成存盘工作,并使用SetModifidFlag(FALSE)设置文档为没有修改。lBOOLCDocument::OnSaveDocument(LPCTSTRlpszPathName)该函数是虚拟函数,用来保存文件。其实现的功能和OpOpenDocument相反,但处理流程类似,描述如下:根据lpszPathName打开文件pFile;使用pFile构造一个用于写入数据的CArchive对象,此对象用来保存数据到文件;设置鼠标为时间瓶形状;使用Serialize函数完成序列化写;完毕,恢复鼠标的形状。lCWinApp::SaveAllModified()CWinApp::CloseAllDocuments(BOOLbEndSession)这两个函数都遍历模板管理器列表,并分别对列表中的模板管理器对象逐个调用CDocManager的同名成员函数:CDocManager::SaveAllModified()CDocManager::CloseAllDocuments(BOOLbEndSession)这两个函数都遍历其文档模板列表,并分别对列表中的模板对象逐个调用CDocTemplate的同名成员函数:CDocTemplate::SaveAllModified()CDocTemplate::CloseAllDocuments(BOOLbEndSession)这两个函数都遍历其文档列表,并分别对列表中的文档对象逐个调用CDocuemnt的成员函数:CDocument::SaveModified()CDocument::OnCloseDocument()lCDocument::SaveModified()CDocument::OnCloseDocument()CDocument::SaveModified前面已作了解释。OnCloseDocument是一个虚拟函数,其流程如图6-2所示。通过文档对象所对应的视,得到所有显示该文档的边框窗口的指针:在SDI程序关闭窗口时,获取的是主边框窗口;在MDI程序关闭窗口时,获取的是MDI子窗口。然后,关闭并销毁对应的边框窗口。如果文档对象的m_bAutoDelete为真,则销毁文档对象自身。

最近更新

2025年想飞的乌龟说课稿(合集13篇) 38页

2025年想象作文雨(锦集25篇) 24页

2025年惭愧的近义词 惭愧词语意思及造句(推荐.. 9页

高碳当量灰铸铁的变质研究 3页

高温紧固螺栓相控阵检测技术 4页

2025年情感创意广告范文 创意软文广告范文 26页

高校综合服务门户设计与探究 3页

氧气、乙炔瓶的安全使用 13页

高斯括号原理及其应用 3页

高强IF钢热轧变形抗力热模拟试验研究 3页

高可靠性数字超速保护装置的研究 3页

高压回转密封机理及性能研究 3页

高中语文传记类文本教学的问题与对策研究 3页

高中化学学困生语言表征能力提升策略研究 3页

飞行员视网膜动脉硬化调查分析 3页

领导绩效反馈对员工工作绩效的影响研究 3页

韶钢3450轧机除鳞系统改造 3页

毛概教学资料毛概第十章 63页

每日一学-中国急性心力衰竭急诊临床实践指南 68页

2025年思念爷爷的作文600字(精选29篇) 50页

2025年怎样爱护环境演讲(合集5篇) 10页

2025年怀揣那颗心600字作文(共12篇) 19页

2025年怀念一种声音阅读题答案(共12篇) 24页

2025年快乐的跳蚤市场作文通用15篇-大文斗范文.. 19页

2025年快乐的寓言小故事(通用10篇) 18页

2025年快乐的一天的小学日记(共7篇) 8页

2025年快乐在身边五年级作文(共26篇) 36页

2025年忠犬八公观后感(锦集17篇) 14页

2025年忆中秋节作文:中秋节的思念(精选19篇.. 21页

最新部编版小学三年级语文下册(古诗、课文、日.. 10页