我需要直接在桌面上绘制滚动文本。我可以使用DC:= GetDC(0)在所有窗口的顶部绘制文本。但我不想这样做。绘图必须仅在桌面上进行,而不是在所有打开的窗口之上。我的文字需要在桌面图标下面!
我该如何在Delphi中实现这一点?我猜Windows 7具有新的API函数,可以更容易地访问桌面窗口,因为它可以淡化壁纸。
我该如何在Delphi中实现这一点?我猜Windows 7具有新的API函数,可以更容易地访问桌面窗口,因为它可以淡化壁纸。
WS_EX_LAYERED
和WS_EX_TRANSPARENT
窗口状态。确保窗口的z顺序将其置于所有其他顶级窗口之下。我链接的文章有很多代码示例供您参考。
WS_EX_TRANSPARENT
,它使窗口变得透明,从而可以穿透点击。 - David Heffernan
WorkerW
(不确定),但它只在壁纸旋转时出现。搜索 'workerw',你会找到很多使用FindWindow[Ex]
获取句柄的代码示例... 使用 Spy++ 或类似工具查找桌面窗口层次结构,当壁纸旋转时和不旋转时显示/隐藏它们以找出哪一个具有桌面背景。不知道,就像这样... - Sertac Akyuz