如何关闭一个Document,如何重载Document的OnCloseDocument()

xharry 2003-10-09 12:13:56
在MDI程序中,打开文档后,如果要关闭一个Document,点击Document对应的View的
小叉叉可以关闭Document,那么如果我想从菜单中关闭它(自己添加一个关闭的菜单项)
该怎么做??

如果要在关闭Document的过程中添加一些处理过程,是不是要重载OnCloseDocument()
,如何重载??

我的做法是:
在菜单中调用OnCloseDocument(),这时候菜单的确可以关闭Document了,但是Document
对应的那个View的小叉叉却不能用了,一点就dump:(((((
...全文
543 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xharry 2003-10-09
  • 打赏
  • 举报
回复
up
wuxfBrave 2003-10-09
  • 打赏
  • 举报
回复
重写CChildFrame的OnClose
xharry 2003-10-09
  • 打赏
  • 举报
回复
我的问题中还有
“如何重载MDI里面每个Document的关闭按钮的方法,就是右上角的‘叉’”

这个怎么解决?


在下分少,多问点,希望各位不要介意!
wuxfBrave 2003-10-09
  • 打赏
  • 举报
回复
那你就响应菜单的时候,发送不同的消息给主窗口好了
SendMessage(WM_COMMAND, ID_FILE_CLOSE)//close
SendMessage(WM_COMMAND, ID_FILE_OPEN)//open
SendMessage(WM_COMMAND, ID_FILE_NEW)//new


wu2003 2003-10-09
  • 打赏
  • 举报
回复
我用两种方法测试,都成功了. 如下程序:

我觉得,你的说法本身自相矛盾,
既然关闭了Document,也就关闭了对应的那个View,
又哪来对应的那个View的小叉叉????????

菜单test1
void CmyDoc::OnTest()
{
OnCloseDocument();
}

菜单test2
void CmyView::OnTest2()
{
GetDocument()->OnCloseDocument();
}
xharry 2003-10-09
  • 打赏
  • 举报
回复
不行的,我的这个菜单项,不只用于关闭,也可以用来打开
就是:没打开文档的时候是‘打开’,有文档带开的时候是'关闭'
xharry 2003-10-09
  • 打赏
  • 举报
回复
怎么没有人回答啊,帮帮忙啊??
各位大哥:(
wuxfBrave 2003-10-09
  • 打赏
  • 举报
回复
OnCloseDocument只是关闭文档时被调用的函数之一而已
你只需要将菜单的ID设置成ID_FILE_CLOSE就可以拉

16,548

社区成员

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

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

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