Ужасные “отключенные” изображения TMainMenu

Delphi 2010, Win32 VCL. Я должен создать главное меню для своего приложения с самым стандартным взглядом. TMainMenu выглядит хорошим во всех версиях Windows, единственная плохая вещь состоит в том когда он отображающий изображения для объектов с Enabled=False.

Delphi имеет некоторый странный метод для создания, которое отключило изображения (черно-белая экструзия со скосами, для меня это похоже, извергают). Я хочу сделать патч для той процедуры в источниках VCL и позволить меню для выбирания отключенных изображений от того же TImageList, но я не могу найти его.

Это, существует вообще, или это - некоторый стандартный вызов API окон? Вы знаете, где та процедура расположена?

Верный стиль OwnerDraw может зафиксировать все это, но я хочу немного более быстрое решение.

13
задан Andrew 25 June 2010 в 09:45
поделиться

2 ответа

В блоге Galfar's Lair есть отличный пост, в котором описывается проблема и есть код обходного пути, отменяющий метод TImageList DoDraw.

Вот картинка (ссылка), показывающая «до» и «после».

alt text

Я думаю, что это относится практически ко всем версиям Delphi.

22
ответ дан 1 December 2019 в 21:23
поделиться

Если вы можете предоставить свои изображения в формате PNG, вы можете использовать TPngImageList из PngComponents . У него есть разные параметры для создания смешанного или отключенного изображения в градациях серого. Формат PNG позволяет использовать альфа-смешение.

4
ответ дан 1 December 2019 в 21:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: