我正在使用 MFC 为网页编写 ActiveX 控件。当资源管理器关闭时,需要在控件的主窗口被销毁之前释放一些资源。我做了一些搜索,发现一个被覆盖的 COleControl::OnClose(DWORD dwSaveOption)
函数应该是一个很好的地方来完成发布工作。所以我对我的代码做了以下更改:
虚拟无效 OnClose(DWORD dwSaveOption);
void MyControl::OnClose(DWORD dwSaveOption)
{
//一些做相关工作的代码
COleControl::OnClose(dwSaveOption);
}
我认为在关闭资源管理器时,应该执行 MyControl::OnClose,但事实并非如此。我是否错过了正确覆盖该函数的任何内容,或者 OnClose 函数不是执行此操作的正确位置?
最佳答案
我个人覆盖 COleControl::OnDestroy()
进行清理。您是否缺少某种事件接收器注册调用来启用关闭?还是调度 map 条目?
关于c++ - COleControl 的 OnClose 被覆盖,但从未被触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13640291/