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();

编程完成,试一下:

<ignore_js_op data-filtered="filtered">

 
jpg改rar 

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

下载附件

保存到相册

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

2011-2-25 04:35 上传

重写MFC窗口上的关闭按钮事件(SDI, MDI, Dialog)的更多相关文章

  1. [WPF疑难]如何禁用窗口上的关闭按钮

    原文 [WPF疑难]如何禁用窗口上的关闭按钮 [WPF疑难]如何禁用窗口上的关闭按钮                                           周银辉 哈哈,主要是调用Rem ...

  2. 将Cocos2dX渲染到MFC窗口上

    引用:http://www.cnblogs.com/windeer/archive/2012/11/18/2767750.html 引言 现在智能手机已经慢慢进入大众化,移动类应用开始火爆起来,游戏类 ...

  3. 原来MFC窗口样式随字符集而改变

    以前好像发现,MFC窗口上按钮的自动样式有时是有亮色边框3D效果的,有时没有,不知道原因,也没有追究,今天正好有机会发现了原因,原来是随字符集而改变的. 1.Unicode版本下的窗口 2.未设置的窗 ...

  4. MFC窗口重绘

    Invalidate()与 UpdateAllViews()有什么分别 Invalidate()是让程序重画窗口. UpdateAllViews()是在DOC/VIEW结构中, 当一个视图的数据改变后 ...

  5. MFC窗口风格 WS_style/WS_EX_style(超详细)

    窗口风格(Window style) WS_BORDER   有边框窗口 WS_CAPTION   必须和WS_BORDER风格配合,但不能与WS_DLGFRAME风格一起使用.指示窗口包含标题要部分 ...

  6. MFC窗口风格 WS_style/WS_EX_style

    窗口风格(Window style) WS_BORDER   有边框窗口 WS_CAPTION   必须和WS_BORDER风格配合,但不能与WS_DLGFRAME风格一起使用.指示窗口包含标题要部分 ...

  7. 如何在 QWidget 窗口上弹出右键菜单

    Title : QWidget 窗口上弹出右键菜单的两个方法 Solution 1 : 给一个 QWidget 添加 QActions,设置 QWidget 的 contextMenuPolicy 属 ...

  8. MFC中 SDI/MDI框架各部分指针获取方式

    VC MFC SDI/MDI框架各部分指针获取方式   整理总结一下,希望能帮助到别人.   获得CWinApp 获得CMainFrame 获得CChildFrame 获得CDocument 获得CV ...

  9. MFC窗口分割以及各窗口间的通讯

    一个偶然的机会又重新接触了MFC窗口的分割,自己结合资料重新写了一个窗口分割的程序,现将具体流程跟大家分享一下: 1.我们先创建一个MFC单文档类的程序,具体分割方式先将单文档整个客户区分成两行一列, ...

随机推荐

  1. 2013年第四届蓝桥杯C/C++B组省赛题目解析

    一. 高斯日记 大数学家高斯有个好习惯:无论如何都要记日记. 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯出生后 ...

  2. Spring JDBC SimpleJdbcInsert类示例

    org.springframework.jdbc.core.SimpleJdbcInsert类是一个多线程,可重用的对象,为将数据插入表提供了易用的功能.它提供元数据处理以简化构建基本insert语句 ...

  3. 新网站如何做SEO优化【转】

    “百度快照变慢了.百度收录问题.关键词掉了”,这是在卢松松留言本被经常问及的问题,新手站长往往会因此吃不下饭.睡不着觉,网站的推广是一个漫长的过程,“心急吃不了热豆腐”,不要整天想着一建站就有巨大的流 ...

  4. autofac 实例生命周期

    转自逆心博客园 autofac 实例生命周期 实例生命周期决定在同一个服务的每个请求的实例是如何共享的. 当请求一个服务的时候,Autofac会返回一个单例 (single instance作用域), ...

  5. C# 一个多层循环中,break一次能跳出几个循环?

    public class BreakTest { public static void main(String[] args) { ; x<; x++) { ; y<; y++) { ; ...

  6. Java SE 8 并发增强

    1.原子值 java5开始,提供了一些原子操作的类,如AtomicInteger.AtomicLong等 这些类提供了诸如incrementAndGet这样的原子操作方法. 单数如果想进行复杂操作,则 ...

  7. [译]Angular-ui 之 多命名视图(Multiple Named Views)

    ◄上一篇 (Nested States & Nested Views)     下一篇 (URL Routing) ► 你可以给你的视图命名,以便可以在单个模版当中拥有一个以上的 ui-vie ...

  8. 183使用 MediaPlayer Framework 框架播放视频

    效果如下: ViewController.h #import <UIKit/UIKit.h> #import <MediaPlayer/MediaPlayer.h> @inte ...

  9. Spring MVC异常处理详解 ExceptionHandler good

    @ControllerAdvice(basePackageClasses = AcmeController.class) public class AcmeControllerAdvice exten ...

  10. [转载]Android 生成keystore,两种方式

    Refer : http://blog.csdn.net/ms03001620/article/details/8490314 一.eclipse 中生成android keystore 建立任意一个 ...