sow*_*was 3 c++ winapi drawing
我将如何在Windows桌面上放置文本?我被告知GetDesktopWindow()是我需要的,但我需要一个例子.
小智 9
我假设您的最终目标是在桌面上显示某种状态信息.
您将不得不这样做:
将DLL注入Explorer的进程并子类化桌面窗口(窗口层次结构SysListView32底部Progman)以直接在其上绘制文本.
创建一个不可激活的窗口,其背景使用PaintDesktop并在其上绘制文本.
第一种解决方案是最具侵入性的,而且很难编码,因此我不推荐它.
第二种解决方案允许最灵活.没有"无证件"或依赖于Explorer的特定实现,甚至只是将Explorer作为shell.
为了防止窗口在单击时被置于顶部,您可以WS_EX_NOACTIVATE在Windows 2000及更高版本上使用扩展窗口样式.在下层系统中,您可以处理WM_MOUSEACTIVATE消息并返回MA_NOACTIVATE.
PaintDesktop如果您通过使用分层窗口需要真正的透明度,您可以逃脱呼叫,但概念保持不变.我写了另一个回答,详细说明了如何使用GDI +正确地使用alpha进行分层窗口.
| 归档时间: |
|
| 查看次数: |
4195 次 |
| 最近记录: |