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

Вниз

Не могу получить сообщение:   Найти похожие ветки 

 
Still Swamp   (2007-11-07 23:13) [0]

Не могу получить сообщение:
Регистрирую:
FMessage:=RegisterWindowMessage(PChar(MY_0_MESSAGE+#0));

Отправляю:
SendMessage(HWND_BROADCAST, FMessage, 0, 0)

В обработчике сообщений все ловится кроме моего заветного. В чем дело?


 
Anatoly Podgoretsky ©   (2007-11-07 23:19) [1]

> Still Swamp  (07.11.2007 23:13:00)  [0]

И чему равно FMessage
И это условие выполнено?

If this parameter is HWND_BROADCAST, the message is sent to all top-level windows in the system, including disabled or invisible unowned windows, overlapped windows, and pop-up windows; but the message is not sent to child windows.


 
Still Swamp   (2007-11-07 23:23) [2]

Результат проверил больше С000 и меньше FFFF.
А вот .... ловлю в child.
А что же мне делать?


 
Eraser ©   (2007-11-08 00:13) [3]

возможно BroadcastSystemMessage[Ex] спасет.


 
Leonid Troyanovsky ©   (2007-11-08 10:33) [4]


> Still Swamp   (07.11.07 23:23) [2]

> А что же мне делать?

EnumChildWindows

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2007-11-08 11:03) [5]

> Still Swamp  (07.11.2007 23:23:02)  [2]

Сам отправляй своим окнам.


 
Still Swamp   (2007-11-08 11:55) [6]

BroadcastSystemMessage не спас.

>Сам отправляй своим окнам.
Ну тут как бы... у меня полсотни окошек которые загружаются из различных DLL их все собирать оч проблематично. Это придется каждое регистрить при загрузке в каком списке в родительском окне, а потом в родительском писать рассылку по этому списку. Торокан посетит.

А можно как нить Application использовать? У меня все окошки про Handle Applicaiton в курсе.


 
Сергей М. ©   (2007-11-08 14:19) [7]


> можно как нить Application использовать?


А як же ш ?
Евойное окно как раз и есть топ-левел


 
Still Swamp   (2007-11-08 15:37) [8]

А как из TApplication получить список хандлов всех окон?
Я честно говоря не совсем себе представляю процесс.

Вот так выглядит создание очередной формы в DLL.

function View(AHandle:HWND): pointer; stdcall;
begin
 Application.Handle:=AHandle;
 Result:=TMyForm.Create(Application);
end;


 
Leonid Troyanovsky ©   (2007-11-08 15:55) [9]


> Still Swamp   (08.11.07 15:37) [8]

> Вот так выглядит создание очередной формы в DLL.

> function View(AHandle:HWND): pointer; stdcall;
> begin
>  Application.Handle:=AHandle;
>  Result:=TMyForm.Create(Application);
> end;

В печку.

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2007-11-08 15:56) [10]


> Ну тут как бы... у меня полсотни окошек которые загружаются
> из различных DLL их все собирать оч проблематично.

Тогда откажись от BROADCAST


 
Still Swamp   (2007-11-08 20:40) [11]

Тогда откажись от BROADCAST
Чем можно заменить?


 
Eraser ©   (2007-11-09 01:56) [12]

> [11] Still Swamp   (08.11.07 20:40)

[4] Leonid Troyanovsky ©   (08.11.07 10:33)


 
Anatoly Podgoretsky ©   (2007-11-09 08:55) [13]

Eraser ©   (09.11.07 01:56) [12]
Он отказался, сказал окон много, не по силам мне.


 
Slym ©   (2007-11-09 09:49) [14]

Если все знают об апликашене, почему бы им не знать о другом объекте, который бы и взял на себя диспетчеризацию событий...
Типа:
TEventDisp=class
private
 FClientList:TList;
public
procedure   Advise(SenderId:TObject;EventProc:TNotifyEvent);
 Undvise(SenderId:TObject);
end;

form.EventProc
begin
 Caption:="ya";
end;

form.Create
begin
EventDisp.Advise(self,EventProc);
end;
form.Destroy
begin
EventDisp.Unadvise(self);
end;



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

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

Наверх




Память: 0.5 MB
Время: 0.017 c
8-1183314956
VitusV
2007-07-01 22:35
2008.08.10
Воспроизведение видео на 2х мониторах


15-1214428795
Хочу телефон
2008-06-26 01:19
2008.08.10
Dual Sim


8-1183726658
Sonic90
2007-07-06 16:57
2008.08.10
Версия MP3 тегов


15-1214405915
TUser
2008-06-25 18:58
2008.08.10
Если вас только 50 тысяч, то вы - лохи


9-1172434704
Mr.Vlad
2007-02-25 23:18
2008.08.10
Изображение с прозрачным фоном