重写mfc窗口右上角的关闭按钮事件

作者:小知 发布时间:2017-07-24 分类:MFC

     技术所限,难免错误,如有不对之处,敬请留言指正!

    本篇文章使用的工程源码test.rar点击可下载,可用vc++6.0或者vs2008打开。



      mfc开发软件的时候,关闭窗体可以设置一个退出按钮,用户点击退出按钮退出,也可以选中窗体右上角×号关闭,但是如果需要在关闭的时候有一个提示或者处理一些事情,而不是直接关闭,这时候就需要重写关闭按钮事件了,步骤如下:

1:使用vc++6.0或者vs2008新建一个基于对话框的mfc工程。

QQ截图20170724125049.png

QQ截图20170724125454.png

2:接下来在要重写关闭按钮的窗体所在的类的cpp文件开头加上#include "afxpriv.h",然后在类的messagemap里面添加ON_MESSAGE_VOID(WM_CLOSE,myClose) 注意没有分号。

QQ截图20170724130127.png

QQ截图20170724131716.png

    注意不要加到CAboutDlg里面去了,要加到你的类名的messagemap里面。

1.png

3:在窗体所在的类的头文件里面相应位置加上afx_msg void myClose();,这个位置一般加在含有其他以afx开头的函数的下一行。加完以后回到窗体所在的cpp文件添加一个函数体

void 类名::myClose()

{

}

QQ截图20170724132016.png

QQ截图20170724131226.png

    接下来就可以在myClose函数里面写你点击关闭按钮时要处理的任何事件了。到这一步,就完成了重写窗体的关闭按钮。

QQ截图20170724132939.png

    注意,我这里的关闭按钮已经失去了关闭窗体的功能,因为我只加了一句messagebox的事件。要添加CDialog:OnOK();或者exit(0);才能达到既弹出消息框,然后又关闭窗体得效果。

QQ截图20170724133020.png

本篇完。





呃 本文暂时没人评论 来添加一个吧

发表评论

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。