博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# Winform中WndProc 函数作用
阅读量:6210 次
发布时间:2019-06-21

本文共 1992 字,大约阅读时间需要 6 分钟。

http://blog.csdn.net/xochenlin/article/details/4328954

 

C# Winform中WndProc 函数作用:

主要用在拦截并处理系统消息和自定义消息

比如:

windows程序会产生很多消息,比如你单击鼠标,移动窗口都会产生消息。这个函数就是默认的消息处理函数。你可以重载这个函数来制定自己的消息处理流程.

在Winform程序中,可以重写WndProc函数,来捕捉所有发生的窗口消息。

这样,我们就可以"篡改"传入的消息,而人为的让窗口改变行为。

简单测试代码: 

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Runtime.InteropServices;namespace ControlTest{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private Demo demo = null;        private void Form1_Load(object sender, EventArgs e)        {            //demo = new Demo(this.Handle.ToInt32());        }        private void button1_Click(object sender, EventArgs e)        {            demo = new Demo(this.Handle.ToInt32());            demo.Test();        }        protected override void WndProc(ref Message m)        {            if (m.Msg == Demo.MY_MSG_BEGIN)            {                MessageBox.Show("类Demo for循环开始.");            }            else if (m.Msg == Demo.MY_MSG_END)            {                MessageBox.Show("类Demo for循环结束.");            }            base.WndProc(ref m);        }    }    public class Demo    {        private int m_hWnd = 0;        public Demo(int hWnd)        {            m_hWnd = hWnd;        }        private const int WM_USER = 0x0400;        public static int MY_MSG_BEGIN = WM_USER + 100;        public static int MY_MSG_END = WM_USER + 101;        [DllImport("User32.DLL")]        public static extern int SendMessage(int hWnd, int Msg, int wParam, int lParam);        public void Test()        {            SendMessage(m_hWnd, MY_MSG_BEGIN, 0, 0);            for (int i = 0; i < 100000; i++)            {                Application.DoEvents();            }            SendMessage(m_hWnd, MY_MSG_END, 0, 0);        }    }   }

 

转载于:https://www.cnblogs.com/gsk99/p/4983043.html

你可能感兴趣的文章
我的友情链接
查看>>
虚拟化主机安装
查看>>
SumPF
查看>>
我的友情链接
查看>>
Active Directory还原工具之一ADRestore 1.1
查看>>
启用和配置Office 365多重身份验证
查看>>
穿越时空,望平板电脑未来发展
查看>>
WinXP、Win7脚本自动加域及用户资料迁移
查看>>
我的友情链接
查看>>
VIM编辑器详解
查看>>
运维自动化之使用Cobbler自动化安装系统与FAQ
查看>>
mysql错误记录1(密码不正确or忘记)
查看>>
软件公司美女多,可以明显提高纯爷们的整体的工作效率
查看>>
2012年在杭州承接的第一个软件项目经验浅谈 -- 门户网站数据库、ASP.NET程序性能改进...
查看>>
******lifenote******
查看>>
date和clock详解
查看>>
python和shell 传递变量
查看>>
DS4000更换硬盘
查看>>
php数组键值排序
查看>>
mysql优化(1)show命令 慢查询日志 explain profiling
查看>>