최근 툴 부분을 WPF로 다시 만들고 있는데, WPF는 WndProc를 바로 오버라이드 할수 없더군요. 뭔가 좀 다른 듯. 메시지를 후킹 해줘야합니다. 밑은 윈도우 메시지를 후킹하는 소스.

private void loadedForm(object sender, RoutedEventArgs e)
{
    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)
{
    if (msg == WM_DESTROY)
    {
        MessageBox.Show("I saw a WM_DESTROY!");
        handled = true;
    }
    return IntPtr.Zero;
}


출처 : http://blogs.msdn.com/b/nickkramer/archive/2006/03/18/554235.aspx


+ Recent posts