|
Массовый сабклассинг (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. Или итак сойдет? Но что-то я не уверен. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2012, 21:20 |
|
Массовый сабклассинг (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-ы пока не понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2012, 02:35 |
|
|
start [/forum/topic.php?fid=60&fpage=68&tid=2157368]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 274ms |
total: | 403ms |
0 / 0 |