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

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

WM_MDIGETACTIVE


Grigoriev ©   (2003-03-04 13:13:00) 

Подскажите как работает WM_MDIGETACTIVE, и если можно с примером.


Игорь Шевченко   (2003-03-04 13:28:00) [1]

А это надо перехватывать оконную процедуру у клиентского окна MDI.

procedure TfMain.FormCreate(Sender: TObject);
begin
FClientInstance := MakeObjectInstance(ClientWndProc);
FPrevClientProc := Pointer(GetWindowLong(ClientHandle,
GWL_WNDPROC));
SetWindowLong(ClientHandle,
GWL_WNDPROC, LongInt(FClientInstance));
end;

procedure TfMain.ClientWndProc(var Message: TMessage);
begin
with Message do
case Msg of
WM_MDIGETACTIVE:
begin
Result := CallWindowProc(FPrevClientProc,
ClientHandle,
Msg,
wParam,
lParam);
.....
else
Result := CallWindowProc(FPrevClientProc,
ClientHandle,
Msg,
wParam,
lParam);
end;
end;


Grigoriev   (2003-03-04 13:26:00) [2]

А как правильно перехватить это сообщение из родительского окна


Игорь Шевченко   (2003-03-04 13:24:00) [3]

hWnd := SendMessage(MyMDIForm.ClientHandle, WM_MDIGETACTIVE, 0, 0);

Для получения Handle активного MDI-Child"a, как следует из названия.


Наверх

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