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

Вниз

Помогите с WH_SHELL   Найти похожие ветки 

 
oduvan   (2003-08-07 16:52) [0]

Пишу свой таск бар, помогите, вот код:

function SysMsgProc(code : integer; wParam : word; lParam : longint) : longint; stdcall;
var
mainapp:hwnd;
begin
mainapp:=FindWindow("TtbtForm",nil);
if code = HSHELL_WINDOWCREATED then
begin
if wparam<>mainapp then
begin
sendmessage(mainapp,WM_WINCREATE,wparam,0);
// шлю сообщение своей проге о том что окно создано и появилось на экране
end;
end;

if code = HSHELL_WINDOWDESTROYED then
begin
if wparam<>mainapp then
sendmessage(mainapp,WM_WINDESTROY,wparam,0);
// шлю сообщение своей проге о том что окно разрушено
( SysHook, Code, wParam, lParam) Пишу свой таск бар, помогите, вот код:

function SysMsgProc(code : integer; wParam : word; lParam : longint) : longint; stdcall;
var
mainapp:hwnd;
begin
mainapp:=FindWindow("TtbtForm",nil);
if code = HSHELL_WINDOWCREATED then
begin
if wparam<>mainapp then
begin
sendmessage(mainapp,WM_WINCREATE,wparam,0);
// шлю сообщение своей проге о том что окно создано и появилось на экране
end;
end;

if code = HSHELL_WINDOWDESTROYED then
begin
if wparam<>mainapp then
sendmessage(mainapp,WM_WINDESTROY,wparam,0);
// шлю сообщение своей проге о том что окно разрушено
end;

Result:= CallNextHookEx(SysHook, Code, wParam, lParam);
end;

............
SetWindowsHookEx(WH_SHELL, @SysMsgProc, HInstance, 0);
............

Ставлю хук в ДЛЛ на WM_SHELL, пытаюсь ловить создание и уничтожение окна - ВСЕ ОТЛИЧНО работает. НО! если мне нужно свернуть окно, т.е.

showwindow(handle,sw_hide);

происходит HSHELL_WINDOWDESTROYED, что портит весь результат, т.к. моя прога от этой ДЛЛ ловит сообщение WM_WINDESTROY, по которому удаляется это окно из списка окон. а мне надо чтобы оно не удалялось, т.к. я еще сним работать буду.

Как сделать хук правильным, чтобы можно было ловить для каждого окна такие сообщения:
Создано, Свернуто, Развернуто, Разрушено. Как минимум вот эти 4 сообщения.

И Как работают HSHELL_WINDOWCREATED и HSHELL_WINDOWDESTROYED .

Подскажите как сделать правильно алгоритм как таскбар.

Заранее всем спасибо.


 
DeadMeat ©   (2003-08-08 18:45) [1]

А зачем сворачивать через SW_HIDE?? Ведь если ты пошлёшь это сообщение при работе простого TaskBar-а, из него оно тоже исчезнет. Попробуй сворачивать через

SendMessage (handle, WM_SYSCOMMAND, SC_MINIMIZE,0)

или чего-то в этом роде...



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

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

Наверх




Память: 0.47 MB
Время: 0.015 c
1-40343
PsoFT
2003-10-02 02:05
2003.10.13
handle


3-40275
sash2
2003-09-24 09:30
2003.10.13
Как создать архив.


9-40219
Uncle Archi
2003-04-07 22:54
2003.10.13
GLScene


1-40470
GreySerg
2003-09-30 20:44
2003.10.13
Как в ListView при редактировании запретить действие ShortCutов ?


1-40412
Deb
2003-09-28 16:03
2003.10.13
Создание свойства компонента типа как у TImage.Picture