MFCの終了処理コードの書き方
MFC では、終了コードでプログラムを終了させるメソッドは次の通りです。
// 声明一个全局变量,用于保存应用程序对象
CMyApp theApp;
// 定义应用程序类
class CMyApp : public CWinApp
{
public:
// 构造函数
CMyApp() {}
// 重写 OnInitInstance 函数,在此函数中初始化应用程序
virtual BOOL InitInstance()
{
// 创建主窗口
// 返回 TRUE 表示初始化成功
return TRUE;
}
// 重写 OnExitInstance 函数,在此函数中清理资源
virtual int ExitInstance()
{
// 清理资源
// 调用父类的 ExitInstance 函数
return CWinApp::ExitInstance();
}
};
// 在主窗口类中,通过消息映射响应 WM_CLOSE 消息
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
ON_WM_CLOSE()
END_MESSAGE_MAP()
// 处理 WM_CLOSE 消息
void CMainFrame::OnClose()
{
// 调用应用程序的退出函数
theApp.ExitInstance();
// 关闭窗口
CFrameWnd::OnClose();
}
上記コード内のグローバル変数 theApp はアプリケーションオブジェクトで、 theApp.ExitInstance() の呼び出しによりアプリケーションが終了します。メインウィンドウクラスでは、 WM_CLOSE メッセージに対応するためにメッセージマップが使用されています。そして、メッセージハンドラ関数内で theApp.ExitInstance() が呼び出されてアプリケーションが終了します。