Use case: при закрытии редактора плагину нужно проверить текст.
Если все нормально, закрываем. Если нет, пишем сообщение, не закрываем.
Событие редактора EE_CLOSE не годится для этого.
Нельзя проверить текст в редакторе. Нельзя отменить закрытие.
Все, что можно сделать, это освободить данные плагина для редактора.
Code: Select all
EE_CLOSE
Плагин может использовать это сообщение для освобождения внутренних структур данных...
Но плагин не должен вызывать EditorControl при обработке этого сообщения потому что редактор уже закрыт...
Функция ProcessEditorEventW должна вернуть 0.
Именно, все еще доступны данные диалога или панели. И можно предотвратить закрытие.
Code: Select all
DN_CLOSE
Return
TRUE - да, согласен с выходом из диалога
FALSE - продолжить работу диалога.
FE_CLOSE
Панель закрывается.
Param равен NULL.
Верните в ProcessPanelEventW FALSE для закрытия панели или TRUE для отмены этого.