您将不得不这样做:
>将DLL注入Explorer的进程并将桌面窗口(Progman窗口层次结构底部的SysListVIEw32)子类化,直接在其上绘制文本.
>创建一个不可激活的窗口,其背景使用PaintDesktop绘制并在其上绘制文本.
第一种解决方案是最具侵入性的,而且很难编码,因此我不推荐它.
第二种解决方案允许最灵活.没有“未记录”或依赖于Explorer的特定实现,甚至只是将Explorer作为shell.
为了防止窗口在单击时被置于顶部,您可以在windows 2000及更高版本上使用扩展窗口样式WS_EX_NOACTIVATE.在下层系统中,您可以处理WM_MOUSEACTIVATE消息并返回MA_NOACTIVATE.
如果通过使用分层窗口需要真正的透明度,您可以使用PaintDesktop调用,但概念保持不变.我写了另一个回答,详细说明了如何使用GDI正确地使用Alpha进行分层窗口.
总结以上是内存溢出为你收集整理的c – 如何在Windows桌面上绘制文本?全部内容,希望文章能够帮你解决c – 如何在Windows桌面上绘制文本?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)