【问题标题】:NetUIHWND and DirectUIHWND [closed]NetUIHWND 和 DirectUIHWND [关闭]
【发布时间】:2026-02-06 20:30:01
【问题描述】:

使用 Spy++ 工具,似乎某些微软应用使用了 NetUIHWNDDirectUIHWND 窗口类;例如:Word 2010 的功能区似乎是 NetUIHWND,而 Windows Live Messenger 窗口似乎是 DirectUIHWND。

这些窗口类似乎承载了一些很酷的图形(带有阴影、渐变等);是否可以在我们自己的 Win32 C++ 应用程序中使用这些窗口类?有没有关于它们的文档?

【问题讨论】:

    标签: c++ winapi user-interface


    【解决方案1】:

    是的,它已经存在了一段时间。但它在 Windows7 中得到了特别多的使用。不幸的是,他们把这个留给自己,它是无证的。您可以尝试对其进行逆向工程,使用 ListView 作为它可能执行的操作的指南。但是您的代码几乎肯定会在下一版本的 Windows 中中断。我认为这是不记录它的重点,他们需要一些不需要保持向后兼容的东西,以便能够改善操作系统的外观。

    【讨论】:

    • 知道是否有人对其进行了逆向工程吗?我真的很想破解它:P
    【解决方案2】:

    NetUIHWND 和 DirectUIHWND 是用于不同 GUI 工具集的 Win32 类类型。 从 Win32 的角度来看,它们是一个自绘制的面板。

    因此您不会直接使用这些类,而是使用其他 GUI 工具集来构建 UI。

    【讨论】:

      【解决方案3】:

      不确定 Messenger UI,但您可以在自己的应用中使用功能区控件。

      【讨论】:

        【解决方案4】:

        使用Microsoft Active Accessibility API:

        这个东西不需要逆向工程,你可以用微软的Active Accessibility API枚举这个类结构。

        【讨论】:

        • 这仅允许您访问或检查托管在其他应用程序中的这些 UI 实例,它不允许您自己使用或托管 UI,这是 OP 所要求的;蒂姆罗宾逊的答案是正确的答案。