- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【2017年整理】窗口关闭消息
当一个窗口关闭时WM_CLOSE,WM_DESTROY,WM_QUIT
? (2010-11-09 21:24:10)
HYPERLINK javascript:; 转载▼
标签:?
HYPERLINK /?c=blogq=%D4%D3%CC%B8by=tag \t _blank 杂谈
一般是响应WM_CLOSE,调用DestroyWindow()DestroyWindow()又发送WM_DESTROY响应WM_DESTROY,调用WM_QUITGetMessage()发现WM_QUIT,退出程序
???有三个消息看起来差不多,都是处理关闭的事情的,它们是WM_CLOSE,WM_DESTROY,和WM_QUIT。它们的确很相似,但你需要知道它们之间的不同!一个窗口或者应用程序应该被关闭时发出WM_CLOSE消息,当接收到WM_CLOSE消息时,如果你愿意,可以向用户提出是否真的要退出。你知道让用户作确认或有错误出现或有什么应该注意的事情发生的时候,往往弹出一个消息框。插播:消息框int MessageBox(HWND hWnd, // handle of owner windowLPCTSTR lpText, // address of text in message boxLPCTSTR lpCaption, // address of title of message boxUINT uType // style of message box);1. 当收到WM_CLOSE消息,你可以做两件事儿。一件是你接受默认的处理并返回一个值,你若这样做了,应用程序或窗口按照计划关闭;或者,你返回0,应用程序或窗口将保持原样。以下是代码的基本部分:if (msg == WM_CLOSE){if (MessageBox(hMainWindow, Are you sure want to quit?, Notice, MB_YESNO | MB_ICONEXCLAMATION) == IDNO)return(0);// otherwise, let the default handler take care of it}2. WM_DESTROY消息有点儿不同,它是窗口正在关闭时发出的。当收到WM_DESTROY消息的时候,窗口已经从视觉上被删除;但一个主窗口被关闭,并不意味着应用程序结束了,因为它可以在没有窗口的条件下继续运行。3. 然而,当一个用户关闭了主窗口,并希望这意味着是要结束应用程序时,如果你希望真的这么做,那么在收到WM_DESTROY消息的时候,你必须发出一个WM_QUIT消息。
4. WM_QUIT是应用程序结束发出的消息,一般可以看成进程被kill掉的情况。
???????5. PostQuitMessage是向系统发出要终止线程的请求,在终止线程前系统还要做些内存的清理工作。
我们关闭一个程序时是发送WM_CLOSE消息(函数SendMessage?),然后调用DestroyWindow函数,调用DestroyWindow时系统会向程序发WM_DESTROY消息,终止整个程序。
*****************************************************************************************************************************************
一个对话框向另一个对话框发窗口关闭消息
对话框A CADlg ; 对话框B CBDlgA中声明B为成员变量 CBDlg m_BDlg;A发送消息关闭B :SendMessage(m_BDlg.GetSafeHwnd(), WM_CLOSE, 0, 0);或者直接:m_BDlg.SendMessage(WM_CLOSE);*********************************************************************************************************************************************************************************
WM_DESTROY,WM_CLOSE???功能有什么不同下面程序执行时出错void???CMainFrame::OnClose()???{CMDIFrameWnd::OnClose();CDocument???*doc;doc=this-GetActiveDocument();}下面程序执行时不出错,void???CMain
您可能关注的文档
- 【2017年整理】秉承正义观念,做好本职工作.doc
- 【2017年整理】秉道教育--上海财经大学金融学院招生目录.docx
- 【2017年整理】秉道教育--中央财经大学首届“全国卓越金融学子夏令营”营员入营须知.docx
- 【2017年整理】称职的职业经理人必须要做的9件事.doc
- 【2017年整理】称职英语真题 第1部分.doc
- 【2017年整理】称谓的翻译.doc
- 【2017年整理】程世才认为西路军多次绝处逢生靠什么.doc
- 【2017年整理】程丽平“踏实做好本职工作,全心全意服务学生.doc
- 【2017年整理】称重定量充填机的故障分析及使用维修.docx
- 【2017年整理】程序优化的三个级别.docx
原创力文档


文档评论(0)