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

Вниз

Как вернуть фокус окну приложения?   Найти похожие ветки 

 
Solver   (2002-06-06 06:38) [0]

Обрабатываю WM_KILLFOCUS ...

Application.Restore
Application.BringToFront
SetFocus
SetForegroundWindow(...)
SetActiveWindow(...)
SendMessage(...WM_SETFOCUS...)

Всё выше перечисленное не помогает!


 
Song ©   (2002-06-06 08:41) [1]

Пошлите WM_SETFOCUS не на Application а на MainForm


 
Solver   (2002-06-06 14:40) [2]

Я и не посылаю на Application, посылаю на по HWND главной формы - не работает!


 
Song ©   (2002-06-06 14:43) [3]

Дык чужому приложению что ли ?


 
esVer   (2002-06-06 14:50) [4]

Если не ошибаюсь, WM_KILLFOCUS посылается окну ДО того, как оно потеряет фокус. Т.е. как бы предупреждение, а потому и не работает.


 
Solver   (2002-06-06 14:53) [5]

2Song своему

2esVer Так я тоже так думал. Но если с определённым интервалом посылать, не обрабатывая WM_KILLFOCUS - тоже нет эффекта!


 
Song ©   (2002-06-06 14:56) [6]

Фокус может иметь форма или любой объект на ней. Так понятней ?
Вы думаете HWND имеет только Application ?


 
Solver   (2002-06-06 14:59) [7]

2Song PostMessage(Form1.Handle,WM_SETFOCUS,0,0) - не работает, так понятней?


 
Song ©   (2002-06-06 15:06) [8]

А Form1.SetFocus ?


 
Solver   (2002-06-06 15:17) [9]

тоже, я же писал!


 
Игорь Шевченко ©   (2002-06-06 15:19) [10]

А код ваш поглядеть можно ?


 
Solver   (2002-06-06 15:26) [11]

type
TForm1 = class(TForm)
private
Procedure DetKillFocus(var MSG : TMessage ) ; message WM_KillFocus ;

...

procedure TForm1.DetKillFocus(var MSG: TMessage);
begin
SetForegroundWindow(Form1.Handle) ;
// Application.Restore ;
// Application.BringToFront ;
PostMessage(Handle,Wm_SetFocus,0,0) ;
end;

end.


 
Игорь Шевченко ©   (2002-06-06 15:30) [12]

MSG.Result := 0


 
Solver   (2002-06-06 15:34) [13]

Я даже в вершину очереди "вставлял" сообщение.
2Игорь Шевченко Не работает.


 
Игорь Шевченко ©   (2002-06-06 15:44) [14]

procedure TForm2.WMKillFocus(var Message: TWMKillFocus);
begin
Message.Result := 0;
SetActiveWindow(Handle);
end;


 
Solver   (2002-06-06 16:14) [15]

Ноль реакции для главного окна...


 
Игорь Шевченко ©   (2002-06-06 16:18) [16]

А для главного окна надо не WM_KILLFOCUS, а WM_ACTIVATEAPP



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

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

Наверх




Память: 0.49 MB
Время: 0.012 c
4-65295
whc
2002-04-22 17:14
2002.06.20
Обработчик для всех элементов управления на форме


1-65013
Verq
2002-06-08 20:23
2002.06.20
Создание MDI-child ов


3-64972
Esipenko
2002-05-28 13:22
2002.06.20
Создание таблиц в Advantage


3-64927
Voldemar
2002-05-11 19:48
2002.06.20
Запрос суммы из кучи таблиц...


8-65180
FOD
2002-02-04 18:22
2002.06.20
Mediaplayer