c – 如何在Windows桌面上绘制文本?

c – 如何在Windows桌面上绘制文本?,第1张

概述我将如何在 Windows桌面上放置文本?我被告知GetDesktopWindow()是我需要的,但我需要一个例子. 我假设您的最终目标是在桌面上显示某种状态信息. 您将不得不这样做: >将DLL注入Explorer的进程并将桌面窗口(Progman窗口层次结构底部的SysListView32)子类化,直接在其上绘制文本. >创建一个不可激活的窗口,其背景使用PaintDesktop绘制并在其上绘 我将如何在 Windows桌面上放置文本?我被告知GetDesktopWindow()是我需要的,但我需要一个例子.解决方法 我假设您的最终目标是在桌面上显示某种状态信息.

您将不得不这样做:

>将DLL注入Explorer的进程并将桌面窗口(Progman窗口层次结构底部的SysListVIEw32)子类化,直接在其上绘制文本.
>创建一个不可激活的窗口,其背景使用PaintDesktop绘制并在其上绘制文本.

第一种解决方案是最具侵入性的,而且很难编码,因此我不推荐它.

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

为了防止窗口在单击时被置于顶部,您可以在windows 2000及更高版本上使用扩展窗口样式WS_EX_NOACTIVATE.在下层系统中,您可以处理WM_MOUSEACTIVATE消息并返回MA_NOACTIVATE.

如果通过使用分层窗口需要真正的透明度,您可以使用PaintDesktop调用,但概念保持不变.我写了另一个回答,详细说明了如何使用GDI正确地使用Alpha进行分层窗口.

总结

以上是内存溢出为你收集整理的c – 如何在Windows桌面上绘制文本?全部内容,希望文章能够帮你解决c – 如何在Windows桌面上绘制文本?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1220193.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存