Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.01 c
1-65033
amputator111111
2002-06-09 17:48
2002.06.20
Проверка орфографии в Memo/RichEdit?


1-65128
nitro
2002-06-07 11:42
2002.06.20
Сообщения на русском языке


1-65036
sea2002
2002-06-09 18:18
2002.06.20
Поиск слова в Memo


14-65221
Alx2
2002-05-17 14:23
2002.06.20
Освежим воспоминания?


3-64896
ant-xx
2002-05-29 02:00
2002.06.20
MsSQL +Kylix???




   Наверх