WndProc(ref Message m)方法

  protected   virtual   void  WndProc(
None.gif   
ref  Message m
None.gif);

参数  m 
      与当前 Windows 消息相关联的 Message。
 
备注
      当窗口消息发送到窗口的句柄时,将调用此方法。对继承者的说明: 重写此方法以实现特定消息处理。对未处理的消息调用 base.WndProc。

示例 
      [Visual Basic, C#, C++] 下面的示例说明了如何利用窗口过程截获操作系统窗口消息。此示例将创建一个从 NativeWindow 继承的类来完成此操作。 
      [Visual Basic, C#, C++] MyNativeWindowListener 类与窗体中传递给构造函数的窗口过程挂钩,并重写 WndProc 方法来截获 WM_ACTIVATEAPP 窗口消息。此类说明了如何使用 AssignHandle 和 ReleaseHandle 方法来标识 NativeWindow 将要使用的窗口句柄。句柄根据 Control.HandleCreated 和 Control.HandleDestroyed 事件进行分配。当收到 WM_ACTIVATEAPP 窗口消息时,该类会调用 form1 ApplicationActivated 方法。 [Visual Basic, C#, C++] 这段代码摘录自 NativeWindow 类概述中显示的示例。为了简洁,一些代码没有显示。有关全部代码的列表,请参见 NativeWindow。

 1 None.gif //  NativeWindow class to listen to operating system messages.
 2 ExpandedBlockStart.gif public   class  MyNativeWindowListener: NativeWindow {
 3InBlock.gif
 4InBlock.gif    // Constant value was found in the "windows.h" header file.
 5InBlock.gif    private const int WM_ACTIVATEAPP = 0x001C;
 6InBlock.gif
 7InBlock.gif    private Form1 parent;
 8InBlock.gif
 9ExpandedSubBlockStart.gif    public MyNativeWindowListener(Form1 parent){
10InBlock.gif
11InBlock.gif        parent.HandleCreated += new EventHandler(this.OnHandleCreated);
12InBlock.gif        parent.HandleDestroyed+= new EventHandler(this.OnHandleDestroyed);
13InBlock.gif        this.parent = parent;
14ExpandedSubBlockEnd.gif    }

15InBlock.gif
16InBlock.gif    // Listen for the control's window creation and then hook into it.
17ExpandedSubBlockStart.gif    internal void OnHandleCreated(object sender, EventArgs e){
18InBlock.gif        // Window is now created, assign handle to NativeWindow.
19InBlock.gif        AssignHandle(((Form1)sender).Handle);
20ExpandedSubBlockEnd.gif    }

21ExpandedSubBlockStart.gif    internal void OnHandleDestroyed(object sender, EventArgs e) {
22InBlock.gif        // Window was destroyed, release hook.
23InBlock.gif        ReleaseHandle();
24ExpandedSubBlockEnd.gif    }

25InBlock.gif[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")]
26ExpandedSubBlockStart.gif    protected override void WndProc(ref Message m){
27InBlock.gif        // Listen for operating system messages
28InBlock.gif
29ExpandedSubBlockStart.gif        switch (m.Msg){
30InBlock.gif            case WM_ACTIVATEAPP:
31InBlock.gif
32InBlock.gif                // Notify the form that this message was received.
33InBlock.gif                // Application is activated or deactivated, 
34InBlock.gif                // based upon the WParam parameter.
35InBlock.gif                parent.ApplicationActived(((int)m.WParam != 0));
36InBlock.gif
37InBlock.gif                break;                
38ExpandedSubBlockEnd.gif        }

39InBlock.gif        base.WndProc(ref m);
40ExpandedSubBlockEnd.gif    }
        
41ExpandedBlockEnd.gif}

42 None.gif

你可能感兴趣的:(WndProc(ref Message m)方法)