Mengendalikan mesej WndProc dalam WPF
Dalam Windows Forms, pengendalian mesej WndProc ialah proses yang mudah. Dalam WPF, bagaimanapun, pendekatannya sedikit berbeza.
Gunakan kelas HwndSource
WPF menyediakan ruang nama System.Windows.Interop, yang mengandungi kelas HwndSource. Kelas ini membenarkan pemintasan dan pemprosesan mesej WndProc.
Contoh pelaksanaan
Coretan kod berikut memberikan contoh penggunaan kelas HwndSource untuk mengendalikan mesej WndProc dalam 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>
Dalam contoh ini:
Maklumat lanjut
Untuk penerangan yang lebih terperinci tentang teknik ini, lihat catatan blog Steve Rands yang sangat baik tentang menggunakan WndProc tersuai dalam aplikasi WPF.
Atas ialah kandungan terperinci Bagaimana Saya Mengendalikan Mesej WndProc dalam WPF?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!