c – 如何在Windows桌面上绘制文本?
发布时间:2020-12-16 10:26:37 所属栏目:百科 来源:网络整理
导读:我将如何在 Windows桌面上放置文本?我被告知GetDesktopWindow()是我需要的,但我需要一个例子. 解决方法 我假设您的最终目标是在桌面上显示某种状态信息. 您将不得不这样做: 将DLL注入Explorer的进程并将桌面窗口(Progman窗口层次结构底部的SysListView32)
我将如何在
Windows桌面上放置文本?我被告知GetDesktopWindow()是我需要的,但我需要一个例子.
解决方法
我假设您的最终目标是在桌面上显示某种状态信息.
您将不得不这样做: >将DLL注入Explorer的进程并将桌面窗口(Progman窗口层次结构底部的SysListView32)子类化,直接在其上绘制文本. 第一种解决方案是最具侵入性的,而且很难编码,因此我不推荐它. 第二种解决方案允许最灵活.没有“未记录”或依赖于Explorer的特定实现,甚至只是将Explorer作为shell. 为了防止窗口在单击时被置于顶部,您可以在Windows 2000及更高版本上使用扩展窗口样式WS_EX_NOACTIVATE.在下层系统中,您可以处理WM_MOUSEACTIVATE消息并返回MA_NOACTIVATE. 如果通过使用分层窗口需要真正的透明度,您可以使用PaintDesktop调用,但概念保持不变.我写了另一个回答,详细说明了如何使用GDI正确地使用alpha进行分层窗口. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |