Текущий архив: 2003.03.03;
Скачать: 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 вся ветка
Текущий архив: 2003.03.03;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.014 c