OnParentNotify () не вызывается, так как dialog2 не является потомком dialog1.
PreTranslateMessage () должен помочь здесь (хотя мне не нравится эта пуля). Хитрость в том, что немодальный диалог не разрушает себя, когда закрывается. Если вы хотите, чтобы диалог умер, он должен вызвать DestroyWindow () при закрытии, например, в переопределении OnCancel ().
Конечно, первое, что приходит в голову, это удивляться, почему вы не хотите добавлять пользовательские уведомления в свой немодальный диалоговый код.
РЕДАКТИРОВАТЬ: Другой метод заключается в установке ловушки сообщений (для текущей темы, а не для всей системы!). Это поможет вам перехватить все сообщения для всех окон, связанных с тем же потоком, что и dialog1. См. SetWindowsHookEx ()