Heim >Backend-Entwicklung >C++ >Wie gehe ich mit WndProc-Nachrichten in WPF um?
Verarbeitung von WndProc-Nachrichten in WPF
In Windows Forms ist die Verarbeitung von WndProc-Nachrichten ein einfacher Vorgang. In WPF ist der Ansatz jedoch etwas anders.
HwndSource-Klasse verwenden
WPF stellt den System.Windows.Interop-Namespace bereit, der die HwndSource-Klasse enthält. Diese Klasse ermöglicht das Abfangen und Verarbeiten von WndProc-Nachrichten.
Beispielimplementierung
Der folgende Codeausschnitt bietet ein Beispiel für die Verwendung der HwndSource-Klasse zur Verarbeitung von WndProc-Nachrichten in WPF:
<code class="language-c#">using System; using System.Windows; using System.Windows.Interop; namespace WpfApplication1 { public partial class Window1 : Window { public Window1() { InitializeComponent(); } protected override void OnSourceInitialized(EventArgs e) { base.OnSourceInitialized(e); HwndSource source = PresentationSource.FromVisual(this) as HwndSource; source.AddHook(WndProc); } private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) { // 在此处处理消息... return IntPtr.Zero; } } }</code>
In diesem Beispiel:
Weitere Informationen
Eine ausführlichere Erklärung dieser Technik finden Sie im hervorragenden Blogbeitrag von Steve Rands über die Verwendung von benutzerdefiniertem WndProc in WPF-Anwendungen.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit WndProc-Nachrichten in WPF um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!