최근 툴 부분을 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


  1. BlogIcon 구차니 2012.05.06 22:35 신고

    음.. 좋은 내용 잘보고 갑니다(응?)
    WPF는 머의 약자인가요?

    • BlogIcon 친절한티스 2012.05.08 15:04 신고

      Windows Presentation Foundation?? 이라는데..
      C#의 윈폼과 비슷한 듯 하면서 달라욤. 화면 구성을 XAML로 정의한다는게 좋더군요. UI 스크립트 마냥 ㅋㅋ

  2. BlogIcon 책읽는아이 2012.05.30 15:55 신고

    Expression Blend 와의 조합이 정말 쿨하던데요..
    차마 가격이 .. 사진 못하겠..... =ㅅ=;

+ Recent posts