|  | 
| 
Картинка + текст на стандартной кнопке. | |||
|---|---|---|---|
| #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: | 11ms | 
| get forum list: | 14ms | 
| check forum access: | 4ms | 
| check topic access: | 4ms | 
| track hit: | 34ms | 
| get topic data: | 12ms | 
| get forum data: | 3ms | 
| get page messages: | 36ms | 
| get tp. blocked users: | 2ms | 
| others: | 217ms | 
| total: | 337ms | 

| 0 / 0 | 
