У меня довольно большое приложение, которое отображает множество различных диалоговых окон, полученных из MFC CDialog. Все диалоги отображаются из центральной функции, которая похожа на эту:
void ShowDialog(CDialog& dlg)
{
dlg.DoModal();
}
Теперь мне нужно по существу вызывать функцию в методе OnInitDialog каждого диалога. Технически это не обязательно должно быть внутри OnInitDialog, но желательно до того, как диалог станет видимым.
Метод грубой силы должен был бы пройти через код и найти каждое последнее диалоговое окно и добавить вызов функции в метод OnInitDialog (если он есть, а если нет, добавить его). Но, похоже, должен быть более элегантный способ ...
Обратите внимание, что dlg на самом деле не CDialog, а что-то, что вытекает из него.
Есть мысли, хитрости или взломы? Я не собираюсь исправлять карту сообщений, но надеюсь найти что-то более чистое / безопасное.