各位大虾,小弟请教一个问题
我在子窗口中用控件把数据显示成相当于Excel的形式,可以编辑修改各个网格的数据,但是我想实现这样的功能:如果在关闭改子窗口之前修改了改子窗口界面上的数据,怎样提示是否保存数据?多谢先

解决方案 »

  1.   

    在OnSysCommand中
    if ( SC_CLOSE == nID)
    {
       if ( 发生更改 )
       {
    if ( MessageBox(_T("是否保存数据?"), _T("标题"), MB_ICONQUESTION|MB_YESNO) 
          == IDYES )
         //保存数据
       }
    }
      

  2.   

    lixiaosan(小三) 能否讲的详细一些?OnSysCommand在哪里?
      

  3.   

    我设了个Bool变量,当界面数据发生改变的时候就把它设为true,我在主框架的OnClose里面判定这个变量,如果为true就弹出对话框,但是关闭子窗口我不知道怎么实现
      

  4.   

    响应子窗口的OnClose、OnOK、DestroyWindow等(具体视你的环境而定),
    在里面根据这个BOOL值判断即可。比如弹出MessageBox等。
      

  5.   

    子窗口的OnClose没反应,关闭子窗口的时候根本就没运行到OnClose函数……
      

  6.   

    视你情况而定嘛。晕。。你没点Colse它当然进不去啦。
    如果没有Close的话就DestroyWindow,这个一定可以进。
    如果不进,说明你这个窗口没有真正销毁,那就需要在外面调用
    m_pChildDlg->DestroyWindow();
      

  7.   

    有个建议,你可以借用MFC的文档视图结构的模式(不一定非要用文档视,只是用它的精神),文档类提供一个SetModified(BOOL)的接口,当文档有变化时,调用这个接口,传TRUE,在程序结束时,检查文档类中的标志,看是否为TRUE,如果是,那么提示保存,如果为FALSE,直接关闭.
      

  8.   

    推荐用重载OnOK和OnCancel的方法
      

  9.   

    重载OnOK吧.
    里面写上保存代码.
      

  10.   

    如果是个Dialog类型, 最简单的就是在上面添加一个按钮,ID设为IDOK,然后给它添加一个函数
    (Ctrl+W,打开类向导添加)如果是个Window类型,用Ctrl+W打开类向导,添加一个WM_CLOSE消息,在OnClose中控制