Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Фокус в ComCtrl 6.0

Ответить
Настройки темы
Фокус в ComCtrl 6.0
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Здравствуйте, товарищи форумщики. Я пишу свою гуишную библиотеку на C++ а-ля Swing. Встала вот такая проблема: при использовании стиля XP (манифестом) иногда не рисуется фокус контролов. Если манифест не подключать (5.0) - всё нормально. Если в результате действий мышкой фокус (6.0) появляется (прорисовывается хоть один раз), то дальше до закрытия окна он прорисовывается нормально. При открытии следующего (popup) окна фокус (уже в нём, не влияя на предыдущее) может пропасть. Я так понял, что проблема возникает при первом появлении окна. Может быть винда как-то помечает контрол, который по её мнению должен иметь фокус, а я ставлю SetFocus на другой?
Вот железный (эмпирический) способ вызвать фокус: если есть ListView хоть с одним элементом, нужно встать на него и понажимать клавиши вверх-вниз. Фокус появляется.

Отправлено: 18:56, 16-05-2006

 
pva pva вне форума Автор темы

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Короче, эмпирическим путём выяснил, что фокус ставится в Common Control 6.0 при нажатии на клавиш управления контролов (функцией IsDialogMessage). Т.е. если в заново созданном диалоге не было задействовано управление с клавиатуры, то фокус и не отрисовывается. То же самое творится и со стандартными виндозными диалогами.

Отправлено: 15:36, 25-12-2006 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Фокус в ComCtrl 6.0

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Самопроизвольно "слетает" фокус окон. hellt Лечение систем от вредоносных программ 4 15-06-2008 22:19
Delphi - Win32 API | Delphi | ФОКУС-раствориться в воздухе. Mavlyudov Программирование и базы данных 9 18-11-2005 08:59




 
Переход