![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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, как следует из названия.