2012-11-30 49 views
4

我正在寫使用MFC網頁中的ActiveX控件。當資源管理器關閉時,在控制器的主窗口被銷燬之前需要釋放一些資源。我做了一些搜索,發現重寫的COleControl::OnClose(DWORD dwSaveOption)函數應該是發佈工作的好地方。所以,我做了如下修改我的代碼:COleControl的OnClose被覆蓋,但從來沒有被解僱

  1. 以下行添加到在頭文件中我控制的聲明:

    virtual void OnClose(DWORD dwSaveOption);
  2. 以下行添加到我的控件的實現文件:

     
    void MyControl::OnClose(DWORD dwSaveOption) 
    { 
        // some code that do relesing job 
        COleControl::OnClose(dwSaveOption); 
    } 
    

我認爲當關閉資源管理器時,MyControl :: OnClose應該被執行,但是不是。我錯過了任何正確覆蓋函數或OnClose函數不是正確的地方嗎?

回答

0

我親自重寫COleControl::OnDestroy()進行清理。您是否缺少某種事件接收器註冊電話以啓用關閉?或者一個調度映射條目?