我已经做了一些搜索,但我找不到确切的答案。在我的 C# WPF 应用程序中,我获取 HWND 指针并将其传递给 C dll。然后该 C dll 尝试使用 GDI 调用在我的窗口上呈现各种覆盖。没有错误,但什么也没有出现。如果我切换到 Windows 窗体,则 dll 可以很好地渲染它。如果我托管一个 WindowsFormHost 控件并从那里使用 hwnd,我将获得相同的效果。我已经看到有关 HwndHost 控件的信息,但它看起来并不像我想要的那样。也许对这种控制有更多了解的人可以告诉我不同的说法。我在某处读到用于 DirectX 渲染(如 WPF)的 hwnd 也不能使用 GDI。这是否使我的情况变得不可能?我可以通过在 WPF 窗口上覆盖一个无边框的表单来伪造它,但显然这不会太漂亮。