COleControl的OnClose被覆盖,但从未被触发过

时间:2012-11-30 06:44:29

标签: c++ mfc activex

我正在使用MFC为网页编写ActiveX控件。当资源管理器关闭时,需要在控件的主窗口被销毁之前释放一些资源。我做了一些搜索,发现被覆盖的COleControl::OnClose(DWORD dwSaveOption)函数应该是一个发布工作的好地方。所以我对我的代码进行了以下更改:

  1. 将以下行添加到头文件中的控件声明中:

    virtual void OnClose(DWORD dwSaveOption);
  2. 将以下行添加到我的控件的实现文件中:

    void MyControl::OnClose(DWORD dwSaveOption)
    {
        // some code that do relesing job
        COleControl::OnClose(dwSaveOption);
    }
    
  3. 我认为在关闭资源管理器时,MyControl :: OnClose应该被执行,但事实并非如此。我是否错过了正确覆盖函数的任何内容,或者OnClose函数不适合这样做?

1 个答案:

答案 0 :(得分:0)

我个人覆盖COleControl::OnDestroy()进行清理。您是否缺少某种事件接收器注册调用以启用关闭?还是调度图条目?