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() が呼び出されてアプリケーションが終了します。

bannerAds