Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
24.10.2012, 21:20
|
|||
---|---|---|---|
Массовый сабклассинг (OldXXXWindowProc?) и прозрачность ComboBox |
|||
#18+
В приложенном ниже примере прозрачность TextBox а также backgroung Combobox (тонкое обрамление вокруг текста) делаю стандартной (для меня уже) подстановкой hbshBackground на сообщения WM_CTLCOLORBTN/WM_CTLCOLORSTATIC/WM_CTLCOLOREDIT -пускай сам выбирает - код один и тот же (т.е. сабклассинг единственного PictureBox). Идем дальше: в Combobox вставлен собственный TextBox/Edit -это я допер. Т.е. сабклассим сам Combobox на предмет WM_CTLCOLOREDIT, код подстановки картинки тот же но с маленьким отличием: Код: vbnet 1. 2. 3. 4.
1. Вопрос 1 (сразу): А что за елемент, который суть раскрывающийся список (где value1, value2) -он по прежнему белый -его бы как-нибуть тоже прозрачным сделать. То бишь как называется, какой у него WM_CTLCOLOR??? и кто родитель? 2. Вопрос 2 Я не хочу каждый раз добавлять новые NewCombo XXX WindowProc и Public OldCombo XXX WindowProc As Long, когда я добавляю новый Combobox. Я сделал так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Оно работает в данном конкретном случае. Но я чувствую задницу. Я использую общий OldComboWindowProc. И мне кажется что ето нехорошо. Как сделать правильно? (OldComboWindowProc употребляется внутри ф-ции NewComboWindowProc и если я например использую массив OldComboWindowProc(), то надо понимать какой его элемент использовать при конкретном вызове NewComboWindowProc. Или итак сойдет? Но что-то я не уверен. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.10.2012, 02:35
|
|||
---|---|---|---|
Массовый сабклассинг (OldXXXWindowProc?) и прозрачность ComboBox |
|||
#18+
Дмитрий77А что за елемент, который суть раскрывающийся список (где value1, value2) -он по прежнему белый -его бы как-нибуть тоже прозрачным сделать. То бишь как называется, какой у него WM_CTLCOLOR??? и кто родитель? С этим разобрался. Есть еще такой Case WM_CTLCOLORLISTBOX: Его применяем к Listbox, а раскрывающийся список в Combobox это ListBox. А parent-ом проще тупо назначать Form1.PictureDigits.hwnd, чтоб именно оттуда нарезался правильный кусок картинки. С Combobox не очень нравятся толстые белые границы на Win7/Vista. Пытаюсь освоить Treview на предмет прозрачности, но пока что-то не очень -автоматом только background - работает это только на классике и XP-стиле, на висте-нет. Да и тот прыгает. Что есть item-ы пока не понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=60&mobile=1&tid=2157368]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
others: | 283ms |
total: | 402ms |
0 / 0 |