Вниз
Скачать: CL | DM;

Проблемма с окнами   Найти похожие ветки 

← →
Alexandr3   (2003-02-19 07:14) [0]

Как то уже спрашивал но до конца проблема так и не решилась,
а дело то вот в чем. Пишу подробно но упрощенно: мое приложение ставит Hook на клавиатуру и при нажатии клавиш получает сообщение myMessage. В обработчике делаю видимой главную форму
MainForm.Show, до этого она была спрятана нажатием кнопки(как бы это уточнить не клавиатурной ес-но а компонентом) на этой же форме MainForm.hide. В обработчике OnShow вывожу форму поверх всех окон BringWindowToTop(handle) и до этих пор все прекрасно форма выводится ловит фокус короче все OK. Но вот если форму не прятать MainForm.hide а она теряет фокус при щелчке мышью
на другом приложении или иконке раб стола то при получении сообщения форма фокус не ловит и поверх других не выводится что очень очень очень надо OnShow не обрабатывается что и
понятно потому что она и не прячется а теряет фокус и остается на экране. OnDeactivate обрабатывать пробовал хотел спрятать форму не прячется,

писал в обработчик моего сообщения BringWindowToTop(handle) или

SetWindowPos(Form1.Handle, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE); не помогает эффекта 0.
При этом другие формы моего приложения например так: Form2.Show;
BringWindowToTop(Form2.handle);)
в обработчике моего сообщения появляются и что самое интересное
поверх главного окна моего приложения но не поверх других.
Просто другое приложение работает на весь экран и при тычке на нем мышью мое прячется за него и после Этого достать его обратно уже никакой возможности нет. Помогите прошу слезно потому как
запарился я с этим дальше некуда.
надо в общемто его вывести или
на худой конец сделать так чтоб оно не пряталось за другое а пряталось по любому MainForm.Hide так как после этого вроде все нормально.


← →
AGGRESSOR   (2003-02-19 12:38) [1]


> OnDeactivate обрабатывать пробовал хотел спрятать форму
> не прячется

???

> SetWindowPos(Form1.Handle, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE
> or SWP_NOSIZE); не помогает эффекта 0

Попробуй SetForegroundWindow


← →
Alexandr3   (2003-02-19 18:09) [2]

В On Deactivate писал MainForm.Hide но форма остается на экране?


← →
AGGRESSOR   (2003-02-19 18:26) [3]


> В On Deactivate писал MainForm.Hide но форма остается на
> экране?

ShowWindow(Application.Handle,SW_HIDE);


← →
Alexandr3   (2003-02-20 04:36) [4]

Коротко и ясно, спасибо все заработало.



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

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



Память: 0.46 MB
Время: -0.989 c
3-5443
mate
2003-02-13 11:47
2003.03.03
BDE , ADO и MSSQL


14-5834
vajo
2003-02-13 07:23
2003.03.03
Диагностика сети Microsoft


14-5733
CrowD
2003-02-12 12:17
2003.03.03
Список в несколько колонок?


3-5450
_BasiL_
2003-02-13 13:15
2003.03.03
DBGrid без BDE


9-5375
Стас
2002-09-06 13:58
2003.03.03
навигация в космосе




   Наверх