窗口内的 DirectX 覆盖
Posted
技术标签:
【中文标题】窗口内的 DirectX 覆盖【英文标题】:DirectX Overlay inside a Window 【发布时间】:2009-06-03 21:24:26 【问题描述】:我需要能够在屏幕上的任何位置设置覆盖图形区域(通过 DirectX/DirectDraw 方法),或者至少在窗口区域内使用它。有人能做到吗?
【问题讨论】:
【参考方案1】:我想你想要的是"Layered Window"。这是an example,它展示了如何使用 DirectX(和 OpenGL)进行分层窗口。
分层窗口可以让您的普通窗口框架透明(或半透明),以便您绘制的内容看起来“漂浮”在桌面和其他窗口上方。
【讨论】:
【参考方案2】:我们最近创建了一个类似的应用程序,其中我们使用 C# 处理所有 GUI 内容,使用 DirectX 处理窗口内的快速 3D。 C# 非常适合快速 GUI 开发,但 GDI+ 对我们的程序来说不够快。因此,我们在 C# 窗口内的 Panel 中覆盖了 WndPrc 函数,并将鼠标事件和绘画的所有控制权转移到 C++ dll。结果很顺利,让我们将快速应用程序开发的各个方面与复杂的 3D 后端结合在一起。
【讨论】:
以上是关于窗口内的 DirectX 覆盖的主要内容,如果未能解决你的问题,请参考以下文章