我有一个包含 HwndHost 的用户控件的 WPF 应用程序。HwndHost 创建如下:
hwndHost = CreateWindowEx(0, "static", "",
WS_CHILD | WS_VISIBLE,
0, 0,
hostHeight, hostWidth,
hwndParent.Handle,
(IntPtr)HOST_ID,
IntPtr.Zero,
0);
hwndControl = CreateWindowEx(0, "Static", "",
WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN
,
0, 0,
hostHeight, hostWidth,
hwndHost,
(IntPtr)PICTUREBOX_ID,
IntPtr.Zero,
0);
然后,我使用 HwndSourceHook 连接到消息泵,并通过大量消息。
除了我想要的 WM_MOUSEMOVE、WM_MOUSEHOVER、WM_LBUTTONDOWN 和 WM_LBUTTONUP
此外,在主窗口或控件上的 WPF 代码中不会触发 OnMouseLeftButtonDown 事件,我认为是因为 Windows 正在捕获它并将其丢弃。
任何人都知道我怎样才能让这些通过,无论是否使用 WIN32 窗口消息?