![]() |
Как послать сообщение всем окнам в пределах одного процесса
Вообщем есть программа под Win9X\С++\MFC\DocView. Нужно послать определенное сообщение из одного окна всем остальным.
Меседж будет посылается из MainFrame в View и их дочерние popup окна. Мои соображения по этому поводу: 1. Нужно юзать Post метод отправки так что бы не было блокировки. 2. HWND_BROADCAST как получатель не катит так как тогда меседж разойдется по всей ОСи а это не безопасно. На этом все.. больше идей нету. Может у кого есть ищо какието соображения по этому поводу? Заранее спасибо! |
во первых - дочерние окна не получат сообщений по HWND_BROADCAST так как они получается только окнами верхнего уровня.
Потому - при создании окон во View нужно просто дописывать его HWND в какой-то общий для всего приложения список, по которому и рассылать. При закрытии этих оконо есс-но удалять из списка. Так как окна View получить всегда можно (список) то лучшим вариантом будет отсылка сообщения каждому виду, а он уже там разбирается что делатьь со своими дочерними окнами. Кроме того - для того чтобы не было "не безопасно" слать Броадкасты нужно регистрировать свои оконные сообещиня. И это касается не только броадкастов. |
Как вариант:
Код:
Wnd = GetWindow(hWndParent, 5)Код:
Wnd = GetWindow(Wnd, 2) |
2 PSyton
Ваш вариант конечно "прямо в лоб" но скорее всего самый рациональный. Всем спасибо. проблема решена. |
| Часовой пояс GMT +4, время: 00:57. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.