在VC6中如何实现按下“退出”键销毁整个应用程序

我向各位前辈讨教一个问题:我写了一个单文档向导生成的ODBC接口模式数据库软件,并为其创建了登录对话框(类名为:CLoad),其中想单击“取消登录”按钮便退出整个应用程序... 我向各位前辈讨教一个问题:
我写了一个单文档向导生成的ODBC接口模式数据库软件,并为其创建了登录对话框(类名为:CLoad),其中想单击“取消登录”按钮便退出整个应用程序,我在 Load.cpp 中这个按钮的消息处理函数中写的代码如下:(加载了头文件:#include "MainFrm.h")

void CLoad::OnCancel()
{
// TODO: Add extra cleanup here
CMainFrame* pcmf;
pcmf->DestroyWindow();
//CDialog::OnCancel();
}

编译没错误没警告,点击该按钮后弹出了 : *.exe应用程序错误这个异常对话框,几秒后,标题栏会提示 没有响应。

请问,功能代码该如何编写?

小弟刚学VC++ 不久,只知道DestroyWindow()是销毁窗口的,是不是还有内存没有回收啊,请各位高手赐教,谢谢!
非常感谢各位前辈为小弟指导,可是我刚学VC不久,连MFC生成的框架结构都还没完全搞清楚之前,对于前两位的方法,小弟暂时还看不懂,能不能说得更详细,谢谢!另外,我照第三种方法试了一下,代码无论放在初始化函数InitInstance()的哪个位置都没解决问题,是不是 CDialog::OnCancel(); 这条语句在作怪!
展开
 我来答
童长爱光0m
推荐于2016-04-17
知道答主
回答量:9
采纳率:0%
帮助的人:0
展开全部
你好,唐宗淙,你提出的这个问题,其实有很多种方法解决。

如果你现在初学VC,还连MFC框架结构都还不十分熟练的情况下,代码可以这样编写:

void CLoad::OnCancel()
{
ExitProccess(0);
}

至于原因,你可以自行查询MSDN。

很多问题,都可以通过MSDN找帮助,只是不知道你的英语怎么样。

另外,最好的方法也是用得最普遍的方法是 2 楼说的,也是我经常用的,你可以查找相关书籍。
还有,3 楼说的方法我见得很少,我也试了一下,可以的啊,怎么你试就不行了?可能你要检查你的消息机制,具体我就不讲了。

不知你学VC是怎么的过程,是学校学的?还是自学的?如果是自学,我建议你弄一本孙鑫著的书,叫《VC++深入详解》,我就是由这本书开始学VC的,这本书适合初学者,也适合有一定层次的程序员作为参考之用,讲得比较详细,有很多基础应用方面的东西。

我很欣赏你这种学法,连MFC框架还不十分清楚,就开始编写数据库程序了!学VC,的确要各方面都先涉及,先不要搞清楚原理性的东西,到了能够编写程序了,有些原理性的东西是可以自己理解的,水到渠成。

C++是个好东西,没有它写不出来的程序,(至少有很多人这样讲)。我从VB过渡到用C++,就对C++ 一见钟情,希望能和你交个朋友,我们以后在C++这一块交流经验吧!

其次,请注意,MFC 是微软的基础类库(也有人叫标准类库),而生成框架的是 应用程序向导,概念要弄清。
I的用户
2010-02-24 · 超过14用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:0
展开全部
exit函数,可以整个进程。
定义 void exit(int status); status为退出时应用程序的返回值,0为正确退出,非零为发生错误。
用法:
exit(0);

MSDN Library解释请参看 http://msdn.microsoft.com/en-us/library/6wdz5232(VS.71).aspx
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leeihcy
2010-02-24 · TA获得超过223个赞
知道小有建树答主
回答量:108
采纳率:0%
帮助的人:137万
展开全部
CLoad loginDlg;
if( IDCANCEL == loginDlg.DoModal() )
{
return FALSE;
}

将这段代码放在***App类的 InitInstance里的前面部分,return FALSE即表示退出整个应用程序。
你的CLoad::OnCalcel不用去重载的。默认即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kukumaiwu
2010-02-24 · TA获得超过244个赞
知道小有建树答主
回答量:360
采纳率:0%
帮助的人:285万
展开全部
最好在方法PostNcDestroy
中加上delete this;
还有看看有没有野指针
记得删掉或者置空
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式