|
Как заменить "вдавленный стиль" на "серый" (в меню)
|
|||
---|---|---|---|
#18+
Попытаюсь объяснить. Если checkbox.enabled=false то он "вдавленный" А если Label1.enabled=false то он "серый" В VB-шном меню Если menu_item.enabled=false то он "вдавленный" Если item отображает картинку, то она также "вдавленно извращается". Поэтому я хочу изменить стиль меню на "серый". В "природе" встречается и "вдавленные", и "серые" меню. В любимом IE кстати в одном меню "помесь" -одно подменю вдавленное, другое серое. Как сделать "серым"? DRAWITEMSTRUCT structure Я пытался играться так Код: vbnet 1. 2. 3. 4. 5.
Тогда Item выглядит как обычный (обычный шрифт и картинка), но нажать его нельзя. Но текст черный(!!!) а не серый. Я пришел к выводу, что MFS_GRAYED более сильное условие чем MFS_DISABLED. Других MFS_ кот. отвечают за disabled я не нашел. Думаю MFS_GRAYED отвечает как за "вдавленный", так и за "серый". А выбор между "вдавленный" и "серый" определяется чем-то другим, а не состоянием item. А вот чем. Картинка иллюстрирует проблему. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2013, 00:24 |
|
Как заменить "вдавленный стиль" на "серый" (в меню)
|
|||
---|---|---|---|
#18+
Вообще-то проблема имеет место быть только на чистой классике. На XP-стиле она отсутсвует. Но IE же как то делает этот стиль и на классике тоже. И куча других приложений тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2013, 01:10 |
|
Как заменить "вдавленный стиль" на "серый" (в меню)
|
|||
---|---|---|---|
#18+
Делается так: 1. При инициализации итема снимается стиль MFS_GRAYED и заменяется стилем MFS_DISABLED (что то же самое, но никак визуально не указывает на то что он disabled) Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
2. Далее тупо красим .Disabled итемы в системный "серый цвет" COLOR_GRAYTEXT, иконки в градациях серого ложатся соответственно без надругательств над ними: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
Попутно раскрашиваем какой-нибудь итем в синий цвет (вдруг цветного меню захочется). Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2013, 04:29 |
|
Как заменить "вдавленный стиль" на "серый" (в меню)
|
|||
---|---|---|---|
#18+
Как -то так как на картинке. На "висте" нижний итем в синий цвет не окрашен, т.к. эта фишка запускается через Case WM_DRAWITEM Вообще говоря это OWNER DRAW, но хитростью это сообщение вызывается за счет .hbmpItem = HBMMENU_CALLBACK На висте HBMMENU_CALLBACK 1) для картинок не нужен 2) более того скукоживает красивое тематическое меню к ущербно-классическому виду, посему вреден ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2013, 04:36 |
|
|
start [/forum/topic.php?fid=60&msg=38273455&tid=2156957]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 156ms |
0 / 0 |