Как сделать прозрачной форму Deskband (панель инструментов панели задач)

Я работаю над Windows Deskband в Delphi XE2 для Windows XP, Vista и 7 (Win32 и Win64) ...

Я реализовал все необходимые интерфейсы (ITrayDeskBand, IDeskBandInfo, IDeskBand2, IDeskBand) в моем коде, и все это работает точно так, как должно (в Vista / 7 нет предупреждений о совместимости, которые испытывали другие).

У меня проблема в том, что моя форма Deskband отображается с непрозрачной полосой. Кроме того, отображаются только определенные элементы управления (в данном случае TBitBtn и TImage, содержащие PNG). Мне он нужен, чтобы правильно отображать объекты TEdit и TComboBox, но они вообще не появятся.

Я пробовал включить свойства GlassFrame и SheetOfGlass в моей форме, но это ни на что не помогло.

Кроме того, сама форма выходит за верхнюю границу панели задач, что означает, что вы не можете (например) изменить размер панели задач, если курсор находится на одной линии с верхней частью панели задач непосредственно над моей полосой рабочего стола.

Я считаю, что есть кое-что, что делает тип Delphi VCL TForm за кулисами, что делает тип TForm несовместимым как контейнер Deskband ... но это только подозрение.

Вот скриншот, иллюстрирующий различные проблемы:

enter image description here

Как вы можете видеть (выше), форма Deskband бледная (вместо прозрачной), она перекрывает верхнюю часть панели задач (предотвращая изменение размера и срабатывание автоматического скрытия, когда панель задач находится в "скрыто")

Есть идеи?

ОБНОВЛЕНИЕ 1 Хорошо, я поигрался и заметил, что при создании элемента управления TToolBar, который будет использоваться для Deskband, наблюдается совершенно другое поведение, а не форма:

enter image description here

Обратите внимание, что есть три элемента управления TToolButton (с их текст практически невидим из-за темы Glass)? Между двумя разделителями также должны быть TEdit и TComboBox , но они вообще отказываются отображаться.

Также обратите внимание на артефакты (повторение реальных значков панели задач)?

Я не уверен, является ли это шагом в правильном направлении или нет, но он может помочь вам (или другим) найти решение!

11
задан LaKraven 27 December 2011 в 17:44
поделиться