Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.47 MB
Время: 0.022 c
14-5779
Sergey Masloff
2003-02-13 16:16
2003.03.03
Осторожно - грипп!


14-5789
Manulo
2003-02-12 19:26
2003.03.03
Эххх...


1-5477
maxim2
2003-02-18 09:33
2003.03.03
Как зарегестрировать ActiveX программно


1-5538
SergeN
2003-02-21 13:25
2003.03.03
console application


14-5788
Lola
2003-02-12 13:23
2003.03.03
Шрифт для BarCode