我給窗口關閉時加了一個消息,提示是否要關閉窗口,不過好像少寫了什麽東東,Messagebox出來之前窗口已經關閉了.哪位原我解決一下呢.另外,想問一下,窗口關閉了,其進程還在嗎?窗口上的各個動作還在進行當中嗎?

解决方案 »

  1.   

    你怎么加的啊,正常应该是处理WM_CLOSE消息才对,另外,窗口没有了,其进程有可能还在,但是动作不应该还继续了,应该没有了窗口,无从接受消息.
      

  2.   

    在主窗口里拦截消息:
    void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)
    {
       if (nID == SC_CLOSE)
       {
        if (MessageBox(_T("确实要退出吗?"), _T(""),MB_YESNO) == IDNO)
    return;
        PostMessage(WM_CLOSE);
        return;
        }   CFrameWnd::OnSysCommand(nID, lParam);
    }
      

  3.   

    直接重写CMainFrame的WM_CLOSE消息处理函数就行了,如果是SDK同样也处理WM_CLOSE
      

  4.   

    哦,謝謝跟貼.
    我加的是OnDestroy,那可能是我加錯了哈,剛學VC,還沒搞清楚.問個比較簡單但是俺不懂的問題,進程和動作主要有什麽區別呢,比如說我窗口里正在顯示下載有一些信息,關閉窗口之後,下載還在繼續嗎?
      

  5.   

    嗯,我添加了個WM_CLOSE消息哈,問題已經解決了.只是還不知道
    "問個比較簡單但是俺不懂的問題,進程和動作主要有什麽區別呢,比如說我窗口里正在顯示下載有一些信息,關閉窗口之後,下載還在繼續嗎?"這個問題.在線的回答一下了.
      

  6.   

    WM_DESTROY是销毁窗口的吧,
    WM_CLOSE是结束一个窗口或应用程序,
    CLOSE时还要调用WM_DESTROY把窗口结束掉。