比在我的 WPF 应用程序中托管 WinForms 用户控件更进一步,我实际上托管的是 Delphi 表单,即顶级窗口。我通过博客文章How To Host Top-Level HWNDs In WPF中的巫术来做到这一点。
几乎所有东西都能完美运行。我发送了一个在 Delphi 中构建的 COM 服务器,一个菜单路径字符串,它发送回一个窗口句柄,我将它传递给博客中描述的主机控件。Delphi 窗口几乎可以正确接收所有事件(更确切地说是 Windows 消息),而无需我进行任何干预。
唯一的问题是按钮。他们很好地收到了点击事件/消息,并且可以正常工作,但是现在 Delphi 的家伙已经为按钮添加了新图标,并且每个按钮都有一个活动图标、一个悬停图标和一个点击图标。他们没有收到任何应该更改这些图标的消息。为什么除了这些之外几乎所有消息都有效?我可以阅读和/或做些什么来尝试纠正这个问题?