Как поймать определенные события формы извне формы?

Я работаю над чем-то, что потребует мониторинга многих форм. Не помещая никакого кода внутрь формы, мне нужно как-то перехватывать события из этих форм, скорее всего, в виде сообщений windows. Но как можно перехватить сообщения windows вне класса, с которым они связаны?

В моем проекте есть объект, который оборачивает каждую форму, которую он отслеживает, и я предполагаю, что эта обработка будет происходить в этом объекте. По сути, когда я создаю форму, которую хочу отслеживать, я создаю соответствующий объект, который в свою очередь добавляется в список всех созданных форм. Самое главное, когда эта форма закрывается, я должен знать об этом, чтобы удалить объект-обертку этой формы из списка.

Эти события включают:

  • Minimize
  • Maximize
  • Restore
  • Close
  • Focus in/out

Чего я не хочу:

  • Любой код внутри любых форм или блоков форм для этой обработки
  • Наследование форм от любой пользовательской базовой формы
  • Использование событий формы, таких как OnClose, потому что они будут использоваться для других целей

Чего я хочу:

  • Обработка сообщений windows для этих событий
  • Любые советы по получению сообщений windows извне класса
  • Какие сообщения windows мне нужно слушать

Вопрос переписан с той же информацией, но с другим подходом

7
задан Jerry Dodge 6 January 2012 в 00:27
поделиться