如何在Windows桌面上绘制文字?

2024-04-03

我该如何将文本放置在 Windows 桌面上?有人告诉我 GetDesktopWindow() 是我所需要的,但我需要一个例子。


我假设您的最终目标是在桌面上显示某种状态信息。

您必须执行以下任一操作:

  • 将 DLL 注入到 Explorer 的进程中并子类化桌面窗口(SysListView32在底部Progmanwindows 层次结构)将文本直接绘制到其上。

  • 创建一个不可激活的窗口,其背景使用PaintDesktop并在上面画上你的文字。

第一个解决方案是最具侵入性的,并且很难编码,所以我不推荐它。

第二种解决方案具有最大的灵活性。没有“未记录”或依赖于 Explorer 的特定实现,甚至只是将 Explorer 作为 shell。

为了防止点击时窗口被带到顶部,可以使用扩展窗口样式WS_EX_NOACTIVATE在 Windows 2000 及更高版本上。在下层系统上,您可以处理WM_MOUSEACTIVATE留言并返回MA_NOACTIVATE.

你可以摆脱PaintDesktop如果您需要通过使用分层窗口实现真正的透明度,请调用,但概念保持不变。我写了另一个答案,详细介绍了如何使用 GDI+ 正确地使用 alpha 进行分层窗口。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Windows桌面上绘制文字? 的相关文章

随机推荐