c++

您所在的位置:网站首页 退出方法是什么 c++

c++

2024-07-12 09:30:49| 来源: 网络整理| 查看: 265

使用 windows MFC C++。我有一个第三方应用程序在我的 CWinApp 派生类中调用用户定义的方法。此方法在 InitInstance() 之后调用。如果此方法中存在错误,例如抛出异常并在 try/catch block 中捕获,我想从 catch block 中退出应用程序。什么是规范且正确的戒烟方式?

更新:

Serge 我认为在 InitInstance() 中返回 false 是正确的退出应用程序的方法。但是,现在假设我想从 CDialog 派生类的 OnInitDialog() 处理程序中退出,那么正确的方法是什么。

更新 2

对我来说,我发现调用 PostMessage(WM_CLOSE) 是我的非模态 CDialog 派生类的最佳方法。在某些情况下,我尝试过的所有其他退出方法都会引发一些异常。

以下是我如何使用它的示例:

BOOL SomeDialog::OnInitDialog() { CDialog::OnInitDialog(); ::OleInitialize(nullptr); try { // ...load settings file here } catch(...) { PostMessage(WM_CLOSE); return TRUE; } // return TRUE unless you set the focus to a control return TRUE; }

最佳答案

在 InitInstance() 中

在InitInstance()中退出应用程序:只需从InitInstance()返回FALSE。

在主消息循环中

如果您已经处于消息循环中,那就另当别论了:关闭应用程序的标准方法是退出消息循环:

PostQuitMessage(0),顾名思义,发布 WM_QUIT 消息。消息循环的 react 是退出循环并关闭程序。

但您不应该简单地这样做:您应该关闭应用程序中打开的窗口。 假设你只有你的主窗口,你应该通过调用

来销毁它 m_pMainWindow->DestroyWindow();

MFC 将通过 PostQuitMessage() 为您使用react,因此退出主消息循环并关闭您的应用程序。

更好的是,您应该发布一个 WM_CLOSE 让您的主窗口优雅地关闭。例如,它可能决定保存当前文档。但请注意:标准的 OnClose() 处理程序可能会提示用户保存脏文档。用户甚至可以使用此提示取消关闭操作(保存文档?是、否、取消)。

销毁主窗口将向其发送 WM_DESTROY 消息。 MFC 通过调用 PostQuitMessage(0) 使用react,退出消息泵。 (实际上,MFC 在 OnNcDestroy() 中进行调用,因为 WM_NCDESTROY 是窗口接收到的绝对最后一条消息)

基于对话框的应用

Call EndDialog(-1);//或者用 IDCANCEL 替换 -1,随便什么

您可能知道,此调用将关闭对话框。

请注意,基于对话框的应用程序的主对话框在 InitInstance() 中执行。关闭对话框将简单地退出 InitInstance(),在此类项目中总是返回 FALSE。

关于c++ - 以编程方式退出 MFC 应用程序的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7562335/



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭