码迷,mamicode.com
首页 > Windows程序 > 详细

C#截获窗体消息

时间:2015-06-25 11:45:32      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:

重载C#From的函数

上面的工作需要重载Form的一些函数,这样才能完成,这里首先了解一个知识点:怎么重载Form的函数?

在建立好一个WinForm的工程之后,我们可以用下面的方法找到可以重载的Form方法:

(1)弹出对象浏览器

技术分享

(2)选择基类型From

技术分享

(3)对象浏览器设置

技术分享

(4)加入重载方法,以DefWndProc为例

技术分享

 这样就可以在需要的地方重载这个函数了,这是一个很好的方法。因为方法重载的时候一般不要自己写这个重载的函数,要从基类中copy这个函数。

截获C#Form消息

先来说接受窗体消息,然后根据截获的消息做一些定制的处理。

 首先要重载一个WndProc的函数,用于接收消息,同时对消息做相应的处理

技术分享

然后在这个函数中写消息的处理代码:

protected override void WndProc(ref Message m)
{
	const int WM_SYSCOMMAND = 0x0112;
	const int SC_CLOSE = 0xF060;

	if(m.Msg == WM_SYSCOMMAND && (int)m.WParam == SC_CLOSE)
	{
		//this.WindowState = FormWindowState.Minimized;
		this.Hide();
		return;
	}

	base.WndProc(ref m);
}//WndProc()

  这个函数知识截获WM_SYSCOMMAND的SC_CLOSE消息,其他的消息还是要交给基类Form的消息处理函数base.WndProc。

C#截获窗体消息

标签:

原文地址:http://www.cnblogs.com/stemon/p/4599385.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!