MFC中,为什么关闭单文档的框架窗口,程序就关闭了?

zaodt 2008-01-25 11:49:19
MFC中,单文档应用:

向框架窗口发送以下命令时:

m_pMainWnd->SendMessage(WM_CLOSE);

因为向框架窗口发送了WM_CLOSE消息,所以框架窗口就关闭了,

但为什么应该也关闭了?


这一点,我还没有找到原因,知道的朋友说下!
...全文
324 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xudongdong99 2012-09-26
  • 打赏
  • 举报
回复
大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神大神
Pinel_yqs 2008-01-26
  • 打赏
  • 举报
回复
框架窗口所在线程就是你的应用程序的主线程。既然你发送了关闭框架窗口的命令,自然会引起主线程的关闭,从而你的应用程序就自然会退出了。所谓皮之不存,毛将焉附?
tccqs 2008-01-26
  • 打赏
  • 举报
回复
对于为什么关闭框架的原因,这只能说是vc这样子设计的吧.
框架是你应用程序的一部分,,而且也是最主要的部分,,
如果想不让它关闭,,你建议你重载一下框架类的OnClose(...)
oldn123 2008-01-26
  • 打赏
  • 举报
回复
在wm_close消息处理函数设断点,调试跟踪一下就一目了然了
liuxiuk 2008-01-26
  • 打赏
  • 举报
回复
刚写完, 宝宝就揭贴了

第一回遇到...!
liuxiuk 2008-01-26
  • 打赏
  • 举报
回复
菜单或点击X时--> WM_CLOSE(系统发出)-->DefWindowProc()(处理WM_CLOSE)

-->DestroyWindow()(被DefWindowProc()调用,销毁窗口,但程序没结束)--->WM_DESTROY

(由DestroyWindow()发出)---> PostQuitMessage()--> WM_QUIT-->GetMessage()--> 应用程序结束



----

消息WM_CLOSE引起了WM_QUIT...
tccqs 2008-01-26
  • 打赏
  • 举报
回复
极度关注中,,,
askLover 2008-01-26
  • 打赏
  • 举报
回复
深刻关注中,,,
zaodt 2008-01-26
  • 打赏
  • 举报
回复
5楼的兄弟,我认为你也需要仔细研究一下:

在MFC单文档程序中,为什么点击【文件】菜单的【退出】菜单项,程序就退出了;而我们没有写一行代码。


为什么要研究这些?因为在实际应用中,可能要改变向导生成的代码。



【自然会引起主线程的关闭】

——这句话是很不负责任的!
cnzdgs 2008-01-26
  • 打赏
  • 举报
回复
框架关闭的时候执行了PostQuitMessage(向本线程发WM_QUIT),主线程消息循环中收到此消息(GetMessage返回FALSE)后自动退出。
zaodt 2008-01-25
  • 打赏
  • 举报
回复
错别字,改正:

但为什么应用也关闭了?

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧