![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| KEHT |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 17.7.2006 Репутация: нет Всего: 1 |
Как сделать фокус окна таким , чтобы он не сбивался ничем.
т.е. чтобы события OnDeactive небыло совсем |
|||
|
||||
| NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 1 Всего: 23 |
В обработчике OnDeactivate устанавливать фокус. Или завести поток, который каждые 100мс будет устанавливать фокус.
|
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 2 Всего: 97 |
||||
|
||||
| Link90 |
|
|||
|
"Битый" пиксель ![]() Профиль Группа: Участник Сообщений: 214 Регистрация: 25.11.2005 Где: Иркутск - середин а земли! Репутация: нет Всего: 7 |
Нужно отловить деактивацию окна и запретить это сделать!
Зачем??? При помощи этого события я бы и отлавливал деактивацию и запрещал её!!! Это сообщение отредактировал(а) Link90 - 14.10.2006, 17:40 |
|||
|
||||
| KEHT |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 17.7.2006 Репутация: нет Всего: 1 |
Такие варианты неподходят
Дело в том , что на канвасе отслеживается событие onmousemove , и потом , когда пользователь отпускает мышку(onmouseup) происходит еще одно событие когда сбивается фокус программы(альт-табом, сообщение в аське и тд) срабатывает событие аналогичное onmouseup , только без кода , т.е. стандартное событие. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Причем тут фокус. Не надо фокус трогать. Тебе ведь написала: лови и обрабатывай WM_NCACTIVATE.
Всего-то верни false, когда тебя деактивировать хотят. См. про return value.
-------------------- ... |
|||
|
||||
| KEHT |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 17.7.2006 Репутация: нет Всего: 1 |
void __fastcall TForm1::ApplicationEvents1Deactivate(TObject *Sender)
{ SendMessage(Form1->Handle,WM_NCACTIVATE,FALSE,0); return FALSE; } так чтоли? почемуто матюгается [C++ Error] Unit1.cpp(32): E2467 '_fastcall TForm1::ApplicationEvents1Deactivate(TObject *)' cannot return a value |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Только вот в самом методе класса формы возвращать ничего не надо: функция-то void.
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Да не надо тебе ничего посылать! Сообщение WM_NCACTIVATE посылается системой, она сама знает когда. Тебе нужно на него ответить!
-------------------- ... |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |