У меня есть приложение MFC GUI, в котором есть несколько фреймов (вроде как поведение Outlook'ish с главным окном, а окна сообщений / встреч создаются в новых фреймах, или Skype, как многокадровая синхронизация), и мне нужно PostMessage malloc'данные через иерархию окон.
Скажем, я получаю строку, _wcsdup, PostMessage (WM_NEWSTRING, ...) и элемент управления где-то в глубине иерархии обрабатывает ее, или если нетподписчики, сообщение очищается.
Что я сейчас изучаю, так это то, что все сообщения публикуются в потоке приложения, поток находит активный кадр или наиболее подходящий кадр, передает ему сообщение, кадр передает сообщение.по его мнению, представление передает сообщение в подпредставление и так далее, если нет представления для обработки сообщения, оно получает free'd.
Проблема в том, что эти команды сцепления довольно утомительны для записи, так какЯ должен продублировать код пересылки сообщений в каждом классе CWnd, который у меня есть.В то же время, очистка ресурсов довольно неприятна, потому что если нет окна для перехвата сообщения, кто-то должен вызвать бесплатное.Поэтому просто отправка сообщения в основной модуль обработки сообщений без дополнительной обработки в надежде, что кто-то всегда его поймает, не является подходящим подходом.PostMessage возвращает S_OK, никто не видит сообщение как обрабатываемое, и оно остается висящим.
Есть ли лучший, правильный подход к тому, что я ищу?