Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать постоянный фокус окна 
:(
    Опции темы
KEHT
Дата 14.10.2006, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 17.7.2006

Репутация: нет
Всего: 1



Как сделать фокус окна таким , чтобы он не сбивался ничем.
т.е. чтобы события OnDeactive небыло совсем
PM MAIL   Вверх
NiJazz
Дата 14.10.2006, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 1
Всего: 23



В обработчике OnDeactivate устанавливать фокус. Или завести поток, который каждые 100мс будет устанавливать фокус.
PM MAIL   Вверх
powerfox
Дата 14.10.2006, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 2
Всего: 97



по идее, должна быть какие-то настройки. Смотрите документицию.


Цитата(NiJazz @  14.10.2006,  18:29 Найти цитируемый пост)
В обработчике OnDeactivate устанавливать фокус. Или завести поток, который каждые 100мс будет устанавливать фокус.

Плохое решение, ИМХО.


--------------------
user posted image
PM WWW   Вверх
Link90
Дата 14.10.2006, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


"Битый" пиксель
*


Профиль
Группа: Участник
Сообщений: 214
Регистрация: 25.11.2005
Где: Иркутск - середин а земли!

Репутация: нет
Всего: 7



Нужно отловить деактивацию окна и запретить это сделать!
Цитата

т.е. чтобы события OnDeactive небыло совсем

Зачем??? При помощи этого события я бы и отлавливал деактивацию и запрещал её!!!

 smile УПС, я уже опоздал...

Это сообщение отредактировал(а) Link90 - 14.10.2006, 17:40
PM MAIL ICQ   Вверх
KEHT
Дата 14.10.2006, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 17.7.2006

Репутация: нет
Всего: 1



Такие варианты неподходят
Дело в том , что на канвасе отслеживается событие onmousemove , и потом , когда пользователь отпускает мышку(onmouseup)
происходит еще одно событие
когда сбивается фокус программы(альт-табом, сообщение в аське и тд) срабатывает событие аналогичное onmouseup , только без кода , т.е. стандартное событие.
PM MAIL   Вверх
Earnest
Дата 15.10.2006, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Причем тут фокус. Не надо фокус трогать. Тебе ведь написала: лови и обрабатывай WM_NCACTIVATE.
Всего-то верни false, когда тебя деактивировать хотят. См. про return value.

Цитата

The WM_NCACTIVATE message is sent to a window when its nonclient area needs to be changed to indicate an active or inactive state.

A window receives this message through its WindowProc function. 

Syntax

WM_NCACTIVATE

    WPARAM wParam
    LPARAM lParam;
    
Parameters

wParam
Specifies when a title bar or icon needs to be changed to indicate an active or inactive state. If an active title bar or icon is to be drawn, the wParam parameter is TRUE. It is FALSE for an inactive title bar or icon. 
lParam
This parameter is not used. 

Return Value

When the wParam parameter is FALSE, an application should return TRUE to indicate that the system should proceed with the default processing, or it should return FALSE to prevent the title bar or icon from being deactivated. When wParam is TRUE, the return value is ignored.



--------------------
...
PM   Вверх
KEHT
Дата 16.10.2006, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
JackYF
Дата 16.10.2006, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Только вот в самом методе класса формы возвращать ничего не надо: функция-то void.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Earnest
Дата 20.10.2006, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Да не надо тебе ничего посылать! Сообщение WM_NCACTIVATE посылается системой, она сама знает когда. Тебе нужно на него ответить!


--------------------
...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0626 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.