WPF에서 WndProc 메시지 처리: 대체 기술 탐색
Windows Forms에서 WndProc를 재정의하면 직접 메시지 처리 경로가 제공됩니다. 이 기능을 WPF로 변환하려면 다른 접근 방식이 필요합니다.
System.Windows.Interop 네임스페이스
WPF에는 HwndSource 클래스가 포함된 System.Windows.Interop 네임스페이스가 도입되었습니다. 이 클래스를 사용하면 기본 Windows 메시지와의 상호 작용이 가능합니다.
구현예
WPF 애플리케이션을 만들고 HwndSource를 사용하여 사용자 정의 메시지 처리를 구현합니다.
<code class="language-csharp">using System; using System.Windows; using System.Windows.Interop; namespace WpfApplication1 { public partial class Window1 : Window { 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>
리소스 승인
이 예는 Steve Rands의 블로그 게시물 "WPF 애플리케이션에서 사용자 정의 WndProc 사용"에서 영감을 받았습니다.
위 내용은 WndProc를 재정의하지 않고 WPF에서 기본 Windows 메시지를 처리하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!