Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как отловить события создания, удаления, активации MDI-child форм [D5, Win2k]


Dens ©   (2003-10-09 13:31:00) 

Мастера, помогите.

Как можно в MainForm отловить события создания, удаления MDI-child окон и смены активного MDI-child окна?
Пробовал обрабатывать сообщения WM_MDIActivate, WM_MDICreate и WM_MDIDestroy. Но в главную форму эти сообщения не попадают. В хелпе вычитал, что эти сообщения передаются в MDI-child формы и в ClientWindow.
А мне бы желательно именно в MainForm. Но если есть какой-либо другой способ, то буду рад и такой ответ.


Dens   (2003-10-09 14:50:00) [1]

Спасибо, понял.

Ветка закрыта.


Е-Моё имя   (2003-10-09 14:49:00) [2]

GetWindowLong(MainForm.ClientHandle,GWL_WNDPROC)
дальше сам


Dens   (2003-10-09 14:46:00) [3]

2 Е-Моё имя

А как через MainForm.ClientHandle получить адрес процедуры?
Или сначала нужно из ClientHandle получить окно?


Е-Моё имя   (2003-10-09 14:41:00) [4]

берешь оконную процедуру указанного окна, запоминаешь ейный адрес
пишешь свою процедуру, подставляешь ее как новую ок.проц. того окна
сообщения падают в твою процедуру
там ты обрабатываешь нужные и отдаешь управление "родной" запомненной процедуре


Dens   (2003-10-09 14:37:00) [5]

2 Е-Моё имя

Если пример не можешь, может объяснишь как этой оконной процедурой пользоваться?


Е-Моё имя   (2003-10-09 14:30:00) [6]

нет


Dens   (2003-10-09 14:29:00) [7]

2 Е-Моё имя

А можно небольшой примерчик?


Е-Моё имя   (2003-10-09 14:25:00) [8]

оконная процедура окна MainForm.ClientHandle получает эти сообщения
там и обрабатывай


Наверх

Титульная страница Поиск, карта сайта Написать письмо