Текущий архив: 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.45 MB
Время: 0.009 c