![]() |
|
|
![]()
|
|
| Cheloveck |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: нет Всего: 32 |
![]() Я сам вполне понимаю глупость ситуации. Но не может быть два фокуса!!! Это сообщение отредактировал(а) Cheloveck - 29.4.2009, 16:26 -------------------- ![]() |
||||
|
|||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: нет Всего: 32 |
Не, ну это уже перебор....
Опять всё то же... Я тут подумал, а если фокус помещается на комбобокс при перемещении, а потом уходит дальше, а выделение остаётся? Может есть какой-то флаг при создании комбобокса (или даже главного окна), чтобы текстовые поля без фокуса не выделялись? Это сообщение отредактировал(а) Cheloveck - 30.4.2009, 13:34 -------------------- ![]() |
|||
|
||||
| voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: 8 Всего: 8 |
Cheloveck, елси поменять местами вызовы SetCurSel и MoveWindow, то выделения нет.
такое решение устроит? |
|||
|
||||
| voov |
|
|||
![]() Патамушта мы пилоты ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 29.11.2007 Репутация: 8 Всего: 8 |
елси использовать стиль CBS_DROPDOWNLIST вместо CBS_DROPDOWN, тоже помогает
Добавлено через 3 минуты и 11 секунд и вот еще такой код не оставляет выделения:
|
|||
|
||||
| Cheloveck |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: нет Всего: 32 |
Нет, не устроит, ибо мне надо перемещать после добавления и выбора строки.
Мне нужно редактируемое поле.
Ясно сказано, что текстовое поле заменяется статиком. Хотя в результате моей Spy-атаки на Explorer, я выяснил, что Microsoft всё же использует CBS_DROPDOWNLIST, вероятно проводя какие-то манипуляции по замене статика эдитом. Фокус убирать я тоже пробовал, НО, мне нужно перемещать контролы при изменении размера окна. И если постоянно снимать фокус - то выделение мерцает. //========================================================================== Очень интересные результаты показало исследование сообщений, при изменении размера комбобокса, точнее эдита в нём:
То есть, выделение устанавливается не так, как было прочитано, а EM_SETSEL nStart:0 nEnd:2147483647. Тем не менее решение найдено!!! Не оптимальное, но в моём случае достаточное.
Плюс к этому при изменении размеров я ввёл таймер, который производит перемещение контролов каждые 100 миллисекунд (собственно как в Qt). Мерцания не видно, выделение текста сохраняется, что и требовалось. P.S. тема закрыта. Это сообщение отредактировал(а) Cheloveck - 5.5.2009, 16:08 -------------------- ![]() |
||||||||||
|
|||||||||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |