Как нарисовать текст на рабочем столе? - PullRequest
3 голосов
/ 21 ноября 2011

Мне нужно нарисовать прокручиваемый текст прямо на рабочем столе. Я могу нарисовать текст поверх всех окон, используя DC: = GetDC (0). Но я этого не хочу. Рисунок должен быть только на рабочем столе, а не сверху всех открытых окон. Мой текст должен быть ниже значков на рабочем столе!

Как мне это сделать в Delphi? Я полагаю, что в Windows 7 есть новые функции API, которые упрощают доступ к окну рабочего стола, поскольку обои могут исчезать.

Ответы [ 2 ]

8 голосов
/ 21 ноября 2011

Это было возможно в течение длительного времени с слоистыми окнами .Используйте состояния окон WS_EX_LAYERED и WS_EX_TRANSPARENT.Вы захотите убедиться, что z-порядок окна помещает его под все остальные окна верхнего уровня.В статье, на которую я ссылаюсь, есть несколько примеров кода, которые помогут вам начать работу.


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

2 голосов
/ 21 ноября 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...