比我在WPF应用程序中托管WinForms用户控件更进一步,我实际上托管Delphi表单,即顶级窗口。我是通过博客文章How To Host Top-Level HWNDs In WPF中的伏都教而这样做的。
几乎一切都很完美。我发送了一个内置Delphi的COM服务器,一个菜单路径字符串,它发回一个窗口句柄,我将其传递给博客中描述的主机控件。 Delphi窗口可以正确接收所有事件(而不是Windows消息),而不需要任何干预。
唯一的问题是按钮。他们收到点击事件/消息很好,并且工作,但现在Delphi人员已经为按钮添加了新图标,每个按钮都有一个活动图标,一个悬停图标和一个点击图标。他们没有收到他们应该更改这些图标的消息。为什么几乎所有的消息都可以工作除了我可以阅读或做些什么来尝试纠正这个问题?
答案 0 :(得分:0)
在MouseOver事件中,发送一些用户消息并捕获它。
WPF and Win32 Interoperation
WPF中的HWND>输入行为的显着差异
当鼠标悬停在HwndHost上时,您的应用程序不会收到WPF鼠标事件,并且WPF属性IsMouseOver的值将为false。