Главная страница
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.019 c
14-5822
andrey_lamer
2003-02-13 08:44
2003.03.03
Как зарегистрировать Trial версию Delphi studio 7?


1-5560
REA
2003-02-21 15:51
2003.03.03
Профайлинг


14-5846
Johnny Smith
2003-02-11 12:12
2003.03.03
Хотелось бы комментарии, особенно от Мазута Берегового,


1-5630
[HDD]John
2003-02-20 12:35
2003.03.03
Картинка как фон


14-5847
xoxol
2003-02-11 06:27
2003.03.03
FORMAT C: