|
Картинка + текст на стандартной кнопке.
|
|||
---|---|---|---|
#18+
Ну это даже не вопрос. В дополнение к этой теме. 13058162 Понадобилось нарисовать картинки + текст на 2-х кнопках (которые в т.ч. могут быть Disabled). Экспериментировал, сделал тестовый проект. М.б. кому пригодится. Не считая DrawIconEx на hdc есть 2 метода (я бы даже сказал 3). 1. BM_SETIMAGE message Код: vbnet 1.
Оптимален на Виста и выше, неважно включены ли темы или классика. Преимущество обусловлено тем, что в состоянии Disabled картинка становится "стильно-матовой", при этом остается цветной - используется одна картинка. 2. BCM_SETIMAGELIST message Код: vbnet 1. 2. 3. 4. 5. 6. 7.
Используется ImageList из 6 картинок, каждая из которых отвечает состоянию кнопки. Ну например для Disabled можно сделать серенькую. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Метод работает на любой OS >=виста а также на XP-при включенной тематике. Оптимален на XP-при включенной тематике, т.к. первый метод на XP не работает. На XP(стиль классика) если нужно Disabled не работает (всегда выводит первую картинку). 3. По сути тоже самое что и 2. Только используем 2 ImageList- каждый с единственной картинкой - для нормального состояния и для Disabled. Смену состояния кнопки (Enabled/Disabled) отслеживаем через customdraw, тупо переназначаем ImageList-ы. Имеет смысл только на XP при классическом стиле. По другому у меня нормально на XP+классика не получилось. Всякие margin-ы проще задавать размером иконки. Т.е. я например использовал 26x16 с эффективной 16x16 по центру. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2014, 06:22 |
|
|
start [/forum/topic.php?fid=60&fpage=42&tid=2156327]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 148ms |
0 / 0 |