![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получение хендла от окна пославшего сообщение? [D7]
GelVit © (2006-06-28 11:42:00)Суть задачи в том, хочу отлавить событие от определенного окна. В случае с SC_CLOSE работает как надо, В SC_MINIMIZE и SC_SIZE грабли...
Получение хендла осуществляю с помощью GetForegroundWindow
Сообственно код:
HCBT_SYSCOMMAND: begin
if (wParam = SC_CLOSE) then
begin
Wnd:=getforegroundwindow;
RWinWnd:= FindWindow('Tdlg_Main', nil);
if ((RWinWnd > 0) and (RWinWnd = Wnd))
begin
// все как нада.... RWinWnd = Wnd
end;
end;
if wParam = SC_MINIMIZE then
begin
Wnd:=getforegroundwindow;
RWinWnd:= FindWindow('Tdlg_Main', nil);
if ((RWinWnd > 0) and (RWinWnd = Wnd)) then
begin
// сюда не попадаем тк RWinWnd <> Wnd
//тоже самое с if wParam = SC_SIZE
end;
Ketmar (2006-07-02 17:42:00) [1]хм. не уверен, но (по-моему %-) сообщение о минимизации получает невидимое окно, которое считается главным окном приложения. а вовсе не форма.
Юрий Зотов (2006-07-02 16:33:00) [2]Не уверен, но попробуйте:
if wParam and $FFF0= SC_xxx then ...