Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.21;
Скачать: CL | DM;

Вниз

Отловить Handle дочернего окна   Найти похожие ветки 

 
sapsi   (2003-05-21 10:19) [0]

Добрый день.
Как можно отловит хэндл дочернего окна.
Пользуюсь
FindWindowEx
Получаю сначала Хэндл родительского, а вместо дочернего - NULL.
Но хэндл дочернего не получаю.
В чем причина?
Если можно, пример работающего кода.
Спасибо.


 
Игорь Шевченко ©   (2003-05-21 10:23) [1]

Что значит "отловить handle дочернего окна" ?


 
sapsi   (2003-05-21 10:59) [2]

получить его


 
Игорь Шевченко ©   (2003-05-21 11:06) [3]

Как пытаешься получить (код) ?


 
sapsi   (2003-05-21 11:34) [4]

Ну например, есть два окна, главное и дочернее 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:47) [5]

А childhandle не равен ли нулю ?


 
sapsi   (2003-05-21 12:25) [6]

нет, не равен, можно без условия даже написать....


 
Игорь Шевченко ©   (2003-05-21 13:08) [7]

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 всегда является дочерним окном.


 
Игорь Шевченко ©   (2003-05-21 13:09) [8]


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;


 
sapsi   (2003-05-21 14:12) [9]

спасибо



Страницы: 1 вся ветка

Текущий архив: 2003.07.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
14-68034
Феликс
2003-07-04 18:22
2003.07.21
Леннокс Льюис согласился провести матч-реванш с Виталием Кличко


1-67805
Till
2003-07-05 11:24
2003.07.21
Переход к следующему элементу формы


1-67767
MaXie
2003-07-08 10:50
2003.07.21
Помогите разорвать замкнутый круг, не нарушив при этом основ ООП!


1-67891
dm37
2003-07-07 12:31
2003.07.21
Hint


14-68069
Mishenka
2003-07-05 03:48
2003.07.21
Где достать рисунок к кнопке добавить?