我需要直接在桌面上绘制滚动文字。我可以使用DC:= GetDC(0)在所有窗口的顶部绘制文本。但我不希望这样。图纸必须仅在桌面上,而不是在所有打开的窗户顶部。我的文字需要低于桌面上的图标!
我如何在Delphi中执行此操作?我猜Windows 7有新的API函数,可以更方便地访问桌面窗口,因为它可以淡化壁纸。
答案 0 :(得分:8)
layered windows已经有很长一段时间了。使用WS_EX_LAYERED
和WS_EX_TRANSPARENT
窗口状态。您需要确保窗口的z顺序将其置于所有其他顶级窗口的下方。我链接到的文章有很多代码示例,可以帮助你。
添加此答案后,您又添加了一个要求,即在桌面上的图标下方绘制文本。我怀疑这是不可能的分层窗口,因为分层窗口不能是子窗口。
答案 1 :(得分:2)
我想在桌面上绘画,这样当我的应用程序没有运行时,我的文本也会保留在那里。
如果您的应用未运行,文本也应该在那里,那么您唯一的选择是更改壁纸:找出桌面壁纸的图像,将文本添加到该图像并将其另存为新壁纸并使用那个。