Владелец рисовать TMainMenu поверх формы Aero Glass? - PullRequest
1 голос
/ 19 января 2011

Проблема Я работаю с формой, где граница аэростекла вытянута сверху примерно на 80 пикселей.TMainMenu не поддерживает нестандартное позиционирование из коробки, и я только предполагаю, что это может быть возможно через рисование владельца.Отрисованный на форме в положении по умолчанию, даже с двойным буферизованным значением true, текст не отображается должным образом ни в одной версии delphi (07, 09 здесь проверено на 10 XE друзьями).

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

У меня нет проблем с использованием плоских кнопок скорости и всплывающих меню для имитации эффекта какэто работает хорошо.Я должен рассчитать ширину текста, чтобы языковые переводы устанавливали ширину кнопок соответствующим образом.Поэтому я просто пытался выяснить, была ли альтернатива.

То, что я знаю и обнаружил Не так уж много, если честно.Видел некоторые вызовы API для создания прозрачной кисти, которая работает для других задач, но это не так, как кажется.

Я смотрел на некоторые пользовательские нарисованные элементы в VB Pascal и C #, но все еще не видел, что я ищу,Если кто-нибудь может указать мне правильное направление, я был бы очень признателен.Пока что все, что мне удалось сделать, это нарисовать меню без 3d-градиента.

1 Ответ

2 голосов
/ 19 января 2011

Я не верю, что это возможно, используя TMainMenu. Я полагаю, что вы могли бы легко сделать это, используя выпадающее меню формы, сделав его листом стекла, и имитируя одно из меню в TMainMenu с каждой формой стекла

...