![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отловить Handle дочернего окна [D5, Win2k]
sapsi © (2003-05-21 10:19:00)Добрый день.
Как можно отловит хэндл дочернего окна.
Пользуюсь
FindWindowEx
Получаю сначала Хэндл родительского, а вместо дочернего - NULL.
Но хэндл дочернего не получаю.
В чем причина?
Если можно, пример работающего кода.
Спасибо.
sapsi (2003-05-21 14:12:00) [1]спасибо
Игорь Шевченко (2003-05-21 13:09:00) [2]
procedure TfMain.Minimize1Click(Sender: TObject);
var
hChild : HWND;
begin
hChild := FindWindowEx(Self.ClientHandle, 0, "TfChild", nil);
if hChild <> 0 then
PostMessage(hChild, WM_SYSCOMMAND, SC_MINIMIZE, 0)
else
ShowMessage("No child");
end;
Игорь Шевченко (2003-05-21 13:08:00) [3]The FindWindow function retrieves the handle to the top-level window whose class name and window name match the specified strings. This function does not search child windows.
Прочитаешь или перевести ?
MDIChild всегда является дочерним окном.
sapsi (2003-05-21 12:25:00) [4]нет, не равен, можно без условия даже написать....
Игорь Шевченко (2003-05-21 11:47:00) [5]А childhandle не равен ли нулю ?
sapsi (2003-05-21 11:34:00) [6]Ну например, есть два окна, главное и дочернее form1 - главное, form2 - дочернее.
var handle, childhandle: hwnd;
begin
handle:=findwindow("tform1",nil);
childhandle:=findwindow("tform2",nil);
if childhandle<>0 then sendmessage(childhandle,wm_syscommand,sc_minimize,0);
end;
Должна ли происходить минимизация mdi child окна? Она не происходит.
if handle<>0 then sendmessage(handle,wm_syscommand,sc_minimize,0);
эта строчка отрабатывает (для главного окна).
Игорь Шевченко (2003-05-21 11:06:00) [7]Как пытаешься получить (код) ?
sapsi (2003-05-21 10:59:00) [8]получить его
Игорь Шевченко (2003-05-21 10:23:00) [9]Что значит "отловить handle дочернего окна" ?