重写MFC窗口上的关闭按钮事件(SDI, MDI, Dialog)

This piece of code demonstrate how to override WM_CLOSE event.

点击窗口关闭按钮,触发相关事件!

有时候,在MFC程序退出之前,我们通常会提醒用户做一些事情,比如说保存窗口数据等。

解决方法:

在主窗口的cpp文件里:

#include "afxpriv.h"

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
....
ON_MESSAGE_VOID(WM_CLOSE,myClose) //新添加的map
......
END_MESSAGE_MAP()

在该cpp文件里,定义myClose函数,比如说:

void CMainFrame::myClose()
{
        //AfxMessageBox("exit");
        //ExitProcess(-1);
        

        if(::MessageBox(NULL, "Save the current interface before exit?","Program Exit", MB_YESNO) == IDYES)
        {
                //可以做一些保存数据的动作
                this->OnClose();
        }
}

在.h文件里,添加申明文件:

afx_msg void myClose();

编程完成,试一下:

重写MFC窗口上的关闭按钮事件(SDI, MDI, Dialog)_第1张图片 
jpg改rar 

WM_ONCLOSE.jpg (11.94 KB, 下载次数: 0)

下载附件  保存到相册

重写MFC窗口上的关闭按钮事件(SDI, MDI, Dialog)

2011-2-25 04:35 上传

 

转载于:https://www.cnblogs.com/kuangke/p/9524586.html

你可能感兴趣的:(重写MFC窗口上的关闭按钮事件(SDI, MDI, Dialog))