:我不是要拦截消息.是想在对话框关闭时,自动保存DOC内容,关闭程序(好象自动点击菜单->关闭一样)
程序是文档/视图结构,有对话框.
想在对话框关闭时,自动保存DOC内容,关闭程序,不再点击关闭菜单
10 个解决方案
#1
对话框在关闭时候(点击确定、取消、右上角小叉号),会自动产生WM_DISTORY消息,你可以用classwizard对WM_DISTORY产生函数OnDestroy(),然后你在这个函数里面写入相应的代码,就可以了。
#2
写错了,是WM_DESTROY消息,呵呵。
#3
WM_DESTROY消息我知道,我想知道的是:
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类中可能有需要序列化的数据。
所以,我想知道,怎样调用菜单->关闭的处理函数?
我在DOC类中可能有需要序列化的数据。
所以,我想知道,怎样调用菜单->关闭的处理函数?
#9
我试过重新添加菜单->关闭的处理函数appExit(),在APP类中,然后在该函数中调用基类的cwinapp::appexit();
然后再调用pApp->appExit(); 但出错,提示:appexit()是protect,不能调用。
--pApp->appExit(); 是public,但cwinapp::appexit();是protect。
该怎么办?
然后再调用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
}
里面写你的作的事情就可以了
在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消息函数里面怎么写?
在这个消息处理函数里面怎样调用菜单->关闭的处理函数来关闭整个程序?
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类中可能有需要序列化的数据。
所以,我想知道,怎样调用菜单->关闭的处理函数?
我在DOC类中可能有需要序列化的数据。
所以,我想知道,怎样调用菜单->关闭的处理函数?
#9
我试过重新添加菜单->关闭的处理函数appExit(),在APP类中,然后在该函数中调用基类的cwinapp::appexit();
然后再调用pApp->appExit(); 但出错,提示:appexit()是protect,不能调用。
--pApp->appExit(); 是public,但cwinapp::appexit();是protect。
该怎么办?
然后再调用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
}
里面写你的作的事情就可以了
在void C****::OnDestroy()
{
CDialog::OnDestroy();
// TODO: Add your message handler code here
}
里面写你的作的事情就可以了