在Windows窗体中,我将重写WndProc,并开始处理传入的消息。
WndProc
有人可以向我展示如何在WPF中实现相同目标的示例吗?
实际上,据我了解,在WPF中使用HwndSource和确实可以做到这一点HwndSourceHook。请参见MSDN上的该线程作为示例。(以下包含相关代码)
HwndSource
HwndSourceHook
// 'this' is a Window HwndSource source = HwndSource.FromHwnd(new WindowInteropHelper(this).Handle); source.AddHook(new HwndSourceHook(WndProc)); private static IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) { // do stuff return IntPtr.Zero; }
现在,我不太确定为什么要在WPF应用程序中处理Windows Messaging消息(除非这是与另一个WinForms应用程序一起使用的最明显的互操作形式)。WPF与WinForms在WPF中的设计思想和API的性质有很大的不同,因此我建议您进一步熟悉WPF,以了解 为什么 没有WndProc。