Я пишу элемент управления ActiveX для веб-страницы, используя MFC. Когда проводник закрывается, некоторый ресурс должен быть освобожден ПЕРЕД разрушением главного окна элемента управления. Я сделал некоторый поиск и обнаружил, что переопределено COleControl::OnClose(DWORD dwSaveOption)
Функция должна быть хорошим местом, чтобы сделать работу освобождения. Поэтому я сделал следующие изменения в своем коде:
Добавьте следующую строку в объявление моего элемента управления в заголовочном файле:
виртуальная пустота OnClose (DWORD dwSaveOption);
Добавьте следующие строки в файл реализации моего элемента управления:
void MyControl :: OnClose (DWORD dwSaveOption) { // некоторый код, выполняющий задание COleControl :: OnClose (dwSaveOption); }
Я думаю, что при закрытии проводника MyControl :: OnClose должен выполняться, но это не так. Я что-то упустил, чтобы корректно переопределить функцию, или функция OnClose не подходит для этого?
Я лично переопределяю COleControl::OnDestroy()
для очистки. Вы пропускаете какой-либо регистрационный звонок приемника событий, чтобы включить Закрыть? Или запись карты отправки?
Других решений пока нет …