![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблемы с MDI [Delphi, Windows]
AlexandrK © (2004-07-26 18:04:00)Перевожу MDI-проект на KOL&MCK.
Что бы несколько раз не открывать одно и то же дочернее окно - ищу его по заголовку, если нахожу, переношу вверх (BringToFront), а дальше надо это окно сделать активным, а не делается:(
Как активировать дочернее окно?
Спасибо и удачи всем
AlexandrK (2004-07-29 09:43:00) [1]спасибо, у меня тоже заработало
Vladimir Kladov (2004-07-27 16:29:00) [2]PostMessage( MDIClient1.Handle, WM_MDIACTIVATE, F2.Handle, 0 );
у меня работает.
AlexandrK (2004-07-27 16:08:00) [3]Все, разобрался -
Sendmessage(MainForm.MDIClient1.Handle,wm_MDIActivate,MainForm.MDIClient1.Children[i].Handle,0)
AlexandrK (2004-07-27 13:32:00) [4]Получил handle активной формы
handle:=LOWORD(Sendmessage(MainForm.MDIClient1.Handle,wm_MDIGetActive,0,0))
Есть Handle формы, которую хочу активировать, есть Handle формы, которую хочу деактивировать.
а вот это Sendmessage(MainForm.MDIClient1.Handle,wm_MDIActivate,0,lParam)
не работает :(
AlexandrK (2004-07-27 10:16:00) [5]Спасибо.
т.е.
надо сделать так
Sendmessage(MainForm.MDIClient1.Handle,wm_MDIActivate,0,lParam)
где -
lParamHi=MainForm.MDIClient1.Children[i].Handle
lParamLo=>Sendmessage(MainForm.MDIClient1.Handle,wm_MDIGetActive,0,h)
но когда я посылаю wm_MDIGetActive вылетает "Runtime Error 216 at 77D49DDB".
Я что-то не так делаю?
Vladimir Kladov (2004-07-26 19:24:00) [6]послать клиентскому окну WM_MDIACTIVATE.