如何在选择了退出程序时,出现一个确认对话框?

dnv 2001-12-31 01:57:14
我的程序是一个SDI应用程序,视的基类是CFormView.我想在选择了退出程序时,出现一个确认对话框,当选择了确定时,真正退出程序;当选择了取消时,程序回到原来的状态。我重载了OnClose()消息函数,怎么程序退出时不执行该函数。请问有什么办法吗?

...全文
142 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
微星1234 2002-01-01
  • 打赏
  • 举报
回复
void CXXXXView::OnClose()
{
// TODO: Add your message handler code here and/or call default
if(IDOK==AfxMessageBox("Would you exit?",2,1))
{
CView::OnClose();
}

}
net_star 2001-12-31
  • 打赏
  • 举报
回复
我在OnClose里就可以得了!!呵呵。
只要不使用OnOK就行了。
washliu 2001-12-31
  • 打赏
  • 举报
回复
不用这么麻烦的,看看你的CFormView Class 中有哪些事件吧,你只要在它的onCloseQuery事件中写下如下代码即可!
void __fastcall TCFormView::FormCloseQuery(TObject *Sender, bool &CanClose)
{
if ((MessageBox(NULL,"你真的要关闭此程序吗?","关闭",MB_OKCANCEL)) == IDOK)
CanClose = true;
else
CanClose = false;
}
当然你想自己重载消息也是可以的,但不是OnClose而是OnCloseQuery!
dnv 2001-12-31
  • 打赏
  • 举报
回复
VC++编译器
f123 2001-12-31
  • 打赏
  • 举报
回复
这是C/C++论坛,你到底是用的什么编译器
dnv 2001-12-31
  • 打赏
  • 举报
回复
void CPhoExpView::OnClose()
{
// TODO: Add your message handler code here and/or call default
AfxMessageBox("确实关闭系统");

CFormView::OnClose();
}
怎么程序退出时不执行该函数。
zhang1000 2001-12-31
  • 打赏
  • 举报
回复
把能够产生Close的ID改掉,自己映射消息.然后调用theApp.onAppExit().
ccnuxjg 2001-12-31
  • 打赏
  • 举报
回复
重灾OnDestory()
微星1234 2001-12-31
  • 打赏
  • 举报
回复
在OnClose()中加以下代码
if(ID_OK==AfxMessageBox("Would you exit?",style)
{
XXXX::OnClose()
}
style为对话框的风格,可指定为不同的值

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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