用了WM_CLOSE,WM_DESTROY,都是将CFormView关闭了后才响应的,我要寻求那个未关闭前的那个消息。

解决方案 »

  1.   

    我是这样做的:
    void CMainFrame::OnDestroy() 
    {
        MessageBox("fd3");
        CFrameWnd::OnDestroy();
        MessageBox("fd4");
    }void CMainFrame::OnClose() 
    {
             MessageBox("fd1");
    CFrameWnd::OnClose();
    MessageBox("fd2");
    }
    void CTestformView::OnClose() 
    {
    MessageBox("fd5");
    CFormView::OnClose();
    MessageBox("fd6");
    }void CTestformView::OnDestroy() 
    {    MessageBox("fd7");
        CFormView::OnDestroy();
        MessageBox("fd8");
    }
    关闭后结果是这样:"fd1"->窗口消失->"fd3"->"fd4"->"fd7"->"fd8"
    可见,要在CFormView关闭之前响应,需要
    void CMainFrame::OnClose() 
    {
             MessageBox("fd1");////////在这里添加code
    CFrameWnd::OnClose();
    MessageBox("fd2");
    }
      

  2.   

    triggerd(有点着急) 的分析是对的。
    原来是我为了图方便,只想到了CXXXXView::Onclose(),没有去想过CMainFrame::OnClose()。现在要将部分变量全局化了。
    再次多谢triggerd(有点着急)