WinForm 和 WPF 里的 WndProc

在学MFC 的第一课就是讲windows的消息机制,其中这一部分是通过WndProc这个函数来完成的,用一个消息循环来捕捉消息。

虽然在WPF里 没有 WndProc 这个函数,但是提供了另一种方法来完成挂钩的功能。

 

在WinForm  里 只需重载 WndProc 函数便可完成消息响应

 

       private const int WM_SIZEING = 0x0214;   //窗口改变大小消息

      protected override void WndProc(ref System.Windows.Forms.Message m )
      {
         switch(m.Msg)
         {      
            case WM_SIZEING:
               //...........你的代码
               break;
            default:
               base.WndProc(ref m);   // 调用基类函数处理其他消息。
               break;
         }
      }

而在wpf 里 要借助HwndSource 才能完成捕获消息的功能

 

首先看看HwndSource ,msdn是这么写的:

 

HwndSource 实现包含 WPF 内容的 Win32 窗口。 WPF 内容在此窗口中排列、度量、呈现,并且可交互式输入。

 

HwndSource 类设计用于一般的交互操作,而不是设计用作托管 HWND 包装。 通常,它不会提供操作窗口的托管方法或检测其状态的属性。 相反,HwndSource 类提供通过 Handle 属性对 Win32 窗口句柄 (HWND) 的访问,可通过 PInvoke 技术将其传递到 Win32 APIs 以操作该窗口。

 

 

构造

HwndSource 的诸多方面只能在构造时指定。 若要创建 HwndSource,请首先创建

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值