当前位置:首页 > Windows程序 > 正文

C#截获窗体消息

2021-05-24 Windows程序

标签:

重载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。

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/70534.html