Главная страница
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.04 c
4-5926
Igit
2003-01-15 10:54
2003.03.03
Как получить список заголовков всех окон


14-5761
Anatoly Podgoretsky
2003-02-16 08:28
2003.03.03
Именинники 16 февраля


7-5897
Big_Rom
2003-01-02 19:41
2003.03.03
Глюк с os


14-5853
MsGuns
2003-02-13 17:19
2003.03.03
Стихи


4-5920
AiratX
2003-01-16 17:52
2003.03.03
Подскажите пожалуйста как сказать часам, что время изменилось.