WPF处理消息使用说明

开发 开发工具
WPF处理消息作为一个开发基础技术,是值得我们去熟练的掌握的。在具体的代码编写中,我们要不断的积累经验来提高我们的编程能力。

WPF开发工具可以帮我们实现许多功能。比如我们今天要向大家介绍的有关WPF处理消息的实现方法,就可以简单轻松的帮助开发人员实现。#t#

在你运行WPF程序的时候——new App().Run(new MyWindow()),有时候要使用Win32API进行WPF处理消息的时候该怎么办?其实很简单,一切的需要都在System.Windows.Interop这个namespace中,这个namespace中所包含的东西主要是为Windows Presentation Foundation (WPF) 和其他技术(如 Win32API)之间的互操作提供支持类型,并为涉及WPF的其他特定互操作方案提供基类。

其他的我就不加以说明了,这里的主题是如何在WPF中使用WindowProc处理消息。

在WPF处理消息中使用WindowProc,首先要获得一个HWND句柄(一个IntPtr类型),然后通过创建一个HwndSource对象,再通过调用这个对象中的AddHook方法来添加WindowProc。
 

 

  1. // 其他namespace  
  2. using System.Windows.Interop;  
  3. public partial class 
    MyWindow : Window  
  4. {  
  5. public MyWindow()  
  6. {  
  7. InitializeComponent();  
  8. // 处理你要做的  
  9. // 添加WindowProc  
  10. IntPtr hwnd = new WindowInterop
    Helper(this).Handle;  
  11. HwndSource.FromHwnd(hwnd).AddHook
    (new HwndSourceHook(WndProc));  
  12. }  
  13. IntPtr WndProc(IntPtr hwnd, 
    int msg, IntPtr wParam, IntPtr 
    lParam)  
  14. {  
  15. // 处理你要处理的消息,具体的消息可
    在WinUser.h中找到,或者在MSDN中  
  16. 查找  
  17. }  
  18. // 其他的  

 

在这段简单的WPF处理消息代码中,我所创建的WindowProc为WndProc。HwndSourceHook是一个Delegate,这里我把WndProc传给了他。

责任编辑:曹凯 来源: 博客园
相关推荐

2009-12-24 16:20:43

WPF Tooltip

2009-12-25 18:12:43

WPF装饰器

2009-12-28 11:23:38

WPF资源文件

2013-10-31 10:59:41

Clouda使用

2011-03-15 10:00:01

NetfilterIPTables

2010-06-03 13:49:04

Sendmail 配置

2019-09-29 14:33:30

Redis集合元素

2010-05-27 14:02:04

SVN使用说明

2009-12-21 10:10:25

Oracle产品

2010-05-27 14:28:41

TortoiseSVN

2009-12-15 15:13:07

.NET Framew

2010-05-27 14:38:37

2010-07-28 09:49:27

FlexBuilder

2010-05-07 13:43:27

Unix Shell

2010-05-27 14:18:00

SVN使用说明

2009-12-15 10:17:38

VS 2010软件

2020-06-28 09:03:26

Linuxtree命令目录

2010-01-05 16:33:35

使用JSON

2009-12-31 14:39:24

ADO测试程序

2009-12-31 09:42:41

ADO对象模型
点赞
收藏

51CTO技术栈公众号