Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.03.03;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.01 c
14-5841
rtooo
2003-02-13 20:32
2003.03.03
QReport


1-5548
Кузнецова А.
2003-02-21 10:41
2003.03.03
QuickReport


14-5869
gn
2003-02-14 07:34
2003.03.03
фишка реальная


1-5499
Sharik_212
2003-02-20 15:55
2003.03.03
Показ формы


7-5875
dimkaa
2003-01-03 20:07
2003.03.03
Одновременная работа двух програм с СОМ портом?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский