Вниз
Скачать: CL | DM;

рабочий стол в качестве парента компонента   Найти похожие ветки 

 
redlord   (2006-07-04 12:17) [0]

всем привет
подскажите как создать в рантайме форму

1   у которой парентом является рабочий стол ?
2   можно ли в качестве парента назначить чужой контрол

 myform:=tform.Create(? ? ?);
 myform.Left:=20;
 myform.Top:=20;
 myform.Height:=200;
 myform.Width:=200;
 myform.Parent:=? ? ? ?


 
Fay ©   (2006-07-04 12:56) [1]

> Create(? ? ?)
Здесь ожидается не Parent, а Owner

> чужой контрол
Это хто?


 
koha   (2006-07-04 13:03) [2]

Попробуй так:
windows.SetParent(myForm.Handle,GetDesktopWindow());

Button - точно прилипает к рабочему столу.

btns:=TButton.Create(Owner);
btns.Parent:=Fm;
windows.SetParent(btns.Handle,GetDesktopWindow());
btns.Left:=random(Screen.Width);
btns.Top:=random(Screen.Height);


 
koha   (2006-07-04 13:50) [3]

Вот окно в рантайме принадлежащее рабочему столу:

Frm:=TForm.Create(Owner);
Windows.SetParent(Frm.Handle,GetDesktopWindow());
Frm.Show;


Только какой смысл?


 
antonn ©   (2006-07-04 14:12) [4]

koha   (04.07.06 13:50) [3]
Только какой смысл?

по Win+D не сворачивается. Тут где то рядом была ветка, оттуда сюда пришли...


 
redlord   (2006-07-04 18:36) [5]

спасибо. на рабочий стол повесить получилось,
а вот на контрол чужой проги не хочет липнуть

Windows.SetParent(Frm.Handle,application.handle);

для чего это надо:
данный код будет забускатся из dll
устанавливающий хук на чужую прогу
а следовательно форма да илюбой контрол
окажется в адрессном пространстве чужой проги со всеми вытекающими  последствиями (добавляю кнопочку проге стороннего разработчика)


 
koha ©   (2006-07-05 19:04) [6]

application.handle - это кажется хендел собственного application, наверно
необходимо поиметь handle того application на который собираешся прилепить свое окно. Наверно необходимо использовать функции поиска: findwindow?
Я не пробовал так, хотя стоит попробовать может, что и получится, меня эта тема тоже заинтересовала.


 
StriderMan ©   (2006-07-05 19:17) [7]


> а вот на контрол чужой проги не хочет липнуть

используй ParentWindow (надо знать хэндл окна, на которого "лепить"). при этом parent обязательно ставь nil.


 
redlord   (2006-07-05 22:09) [8]

to koha

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

тока теперь проблема другого плана
при закрытии проги установившей хук , происходит критичесская ошибка
в проге на которую хук был установлен
а еси первой закрыть прогу на которую поставлен хук то все работает без глюков
и кто должен убивать приаттаченный обект ?



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.025 c
15-1151390069
pavel_guzhanov
2006-06-27 10:34
2006.07.23
Подскажите бесплатный хостинг


1-1149181476
parovoZZ
2006-06-01 21:04
2006.07.23
Фон. Ну хотя бы на канве


1-1150060251
leonidus
2006-06-12 01:10
2006.07.23
Как прочесть юникодную строку из буфера обмена


2-1151756938
простак
2006-07-01 16:28
2006.07.23
маленький вопросик про Memo


2-1151897832
learner
2006-07-03 07:37
2006.07.23
BeginThread и CreateThread




   Наверх