想在对话框关闭时,调用菜单->关闭的处理函数关闭程序,怎么做?

时间:2023-01-17 23:49:41
想在对话框关闭时,调用菜单->关闭的处理函数,怎么做?
:我不是要拦截消息.是想在对话框关闭时,自动保存DOC内容,关闭程序(好象自动点击菜单->关闭一样)
程序是文档/视图结构,有对话框.
想在对话框关闭时,自动保存DOC内容,关闭程序,不再点击关闭菜单

10 个解决方案

#1


对话框在关闭时候(点击确定、取消、右上角小叉号),会自动产生WM_DISTORY消息,你可以用classwizard对WM_DISTORY产生函数OnDestroy(),然后你在这个函数里面写入相应的代码,就可以了。

#2


写错了,是WM_DESTROY消息,呵呵。

#3


WM_DESTROY消息我知道,我想知道的是:
WM_DESTROY消息函数里面怎么写?
在这个消息处理函数里面怎样调用菜单->关闭的处理函数来关闭整个程序?

#4


AfxGetMainWnd()->PostMessage(WM_CLOSE,0,0) ; 

可否?

#5


AfxGetMainWnd()->PostMessage(WM_CLOSE,0,0) ??
试试先.

挺奇怪的,系统自动建立的菜单->关闭的处理函数在那里呢?我是想调用这个函数的.因为文档类可能有数据要保存.

#6


AfxGetMainWnd()->PostMessage(WM_CLOSE,0,0) 不行,出错了. 它没有检察和进行结束前的工作,直接就结束程序.

系统自动建立的菜单->关闭的处理函数在那里呢?
我是想调用这个函数的.因为文档类可能有数据要保存.

#7


你重载WM_DESTROY消息,然后在函数中保存数据好了

#8


调用的菜单->关闭的处理函数要简单很多;
我在DOC类中可能有需要序列化的数据。

所以,我想知道,怎样调用菜单->关闭的处理函数?

#9


我试过重新添加菜单->关闭的处理函数appExit(),在APP类中,然后在该函数中调用基类的cwinapp::appexit();
然后再调用pApp->appExit(); 但出错,提示:appexit()是protect,不能调用。
--pApp->appExit(); 是public,但cwinapp::appexit();是protect。

该怎么办?

#10


重载WM_DESTROY就可以,
在void C****::OnDestroy() 
{
CDialog::OnDestroy();

// TODO: Add your message handler code here

}
里面写你的作的事情就可以了

#1


对话框在关闭时候(点击确定、取消、右上角小叉号),会自动产生WM_DISTORY消息,你可以用classwizard对WM_DISTORY产生函数OnDestroy(),然后你在这个函数里面写入相应的代码,就可以了。

#2


写错了,是WM_DESTROY消息,呵呵。

#3


WM_DESTROY消息我知道,我想知道的是:
WM_DESTROY消息函数里面怎么写?
在这个消息处理函数里面怎样调用菜单->关闭的处理函数来关闭整个程序?

#4


AfxGetMainWnd()->PostMessage(WM_CLOSE,0,0) ; 

可否?

#5


AfxGetMainWnd()->PostMessage(WM_CLOSE,0,0) ??
试试先.

挺奇怪的,系统自动建立的菜单->关闭的处理函数在那里呢?我是想调用这个函数的.因为文档类可能有数据要保存.

#6


AfxGetMainWnd()->PostMessage(WM_CLOSE,0,0) 不行,出错了. 它没有检察和进行结束前的工作,直接就结束程序.

系统自动建立的菜单->关闭的处理函数在那里呢?
我是想调用这个函数的.因为文档类可能有数据要保存.

#7


你重载WM_DESTROY消息,然后在函数中保存数据好了

#8


调用的菜单->关闭的处理函数要简单很多;
我在DOC类中可能有需要序列化的数据。

所以,我想知道,怎样调用菜单->关闭的处理函数?

#9


我试过重新添加菜单->关闭的处理函数appExit(),在APP类中,然后在该函数中调用基类的cwinapp::appexit();
然后再调用pApp->appExit(); 但出错,提示:appexit()是protect,不能调用。
--pApp->appExit(); 是public,但cwinapp::appexit();是protect。

该怎么办?

#10


重载WM_DESTROY就可以,
在void C****::OnDestroy() 
{
CDialog::OnDestroy();

// TODO: Add your message handler code here

}
里面写你的作的事情就可以了