WndProc函数(转)
WndProc函数作用:
主要用在拦截并处理系统消息和自定义消息
比如:
windows程序会产生很多消息,比如你单击鼠标,移动窗口都会产生消息。这个函数就是默认的消息处理函数。你可以重载这个函数来制定自己的消息处理流程.
在CS中,可以重写WndProc函数,来捕捉所有发生有窗口消息。
这样,我们就可以"篡改"传入的消息,而人为的让窗口改变行为。
代码实例:
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.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 = ; public Demo(int hWnd)
{
m_hWnd = hWnd;
} private const int WM_USER = 0x0400;
public static int MY_MSG_BEGIN = WM_USER + ;
public static int MY_MSG_END = WM_USER + ; [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, , ); for (int i = ; i < ; i++)
{
Application.DoEvents();
}
SendMessage(m_hWnd, MY_MSG_END, , );
}
}
WndProc函数(转)的更多相关文章
- C# Winform中WndProc 函数作用
http://blog.csdn.net/xochenlin/article/details/4328954 C# Winform中WndProc 函数作用: 主要用在拦截并处理系统消息和自定义消息 ...
- 结合windows消息系统理解C#中WndProc函数和DefWndProc函数
Windows消息系统由3部分组成: 1.消息队列.Windows应用程序的消息是由Windows统一在一个消息队列中管理的. 2.消息循环.应用程序从Windows消息队列中获得自己 ...
- WndProc函数参数列表
protected override void WndProc(ref Message m) 实现了这一点. 重写WndProc函数,可以捕捉所有窗口发生的消息.这样,我们就可以"篡改&qu ...
- TWinControl的消息覆盖函数大全(41个WM_函数和31个CM_函数,它的WndProc就处理鼠标(转发)、键盘(取消拖动)、焦点、和WM_NCHITTEST一共4类消息)
注意,这些函数只有Private一种形式(也就是不允许覆盖,但仍在动态表格中): 其中TWinControl对TControl有10个消息进行了覆盖(红色标记),其中有2个是WM_消息,8个是CM_消 ...
- c# Wndproc的使用方法
protected override void WndProc(ref Message m) { const int WM_SYSCOMMAND = 0x0112; const int SC_CLOS ...
- 转:CWnd的函数,以后可以在这儿找了!
CWnd CObject └CCmdTarget └CWnd CWnd类提供了微软基础类库中所有窗口类的基本功能.CWnd对象与Windows的窗口不同,但是两者有紧密联系.CWnd对象是由 ...
- TWinControl与TControl的覆盖函数(TWinControl对TControl的10个消息覆盖函数,17个覆盖函数,私有虚函数仍可多态)
手工找出来,对比一下,有助于VCL框架的理解.----------------------------------------------------------------------------- ...
- Delphi对象变成Windows控件的前世今生(关键是设置句柄和回调函数)goodx
----------------------------------------------------------------------第一步,准备工作:预定义一个全局Win控件变量,以及一个精简 ...
- MSG结构体和WndProc窗口过程详解
MSG结构体和WndProc窗口过程对于Windows编程非常重要,如果不了解它们,可以说就没有学会Windows编程. MSG结构体 MSG 结构体用来表示一条消息,各个字段的含义如下: typed ...
随机推荐
- 对于数据操作的SQL语句精粹(长期更新)
--删除空格 Update [Table] Set [Column]=Replace([Column],' ','') --查出左右和右边带空格的数据 select RTRIM( LTRIM([Col ...
- <display:column>属性解释
参考官方网站:http://www.displaytag.org/1.2/displaytag/tagreference.html 所有属性: autolink,class,comparator,de ...
- java事件演示
package cn.stat.p3.windowdemo; import java.awt.Button; import java.awt.FlowLayout; import java.awt.F ...
- 有几数组表单,js怎么获得数组并动态相加输出到文本框
有几数组表单,js如何获得数组并动态相加输出到文本框<input name= "fee1[] "> <input name= "fee2[] & ...
- Ubuntu中安装编译并测试HTK语音识别库
1.在网上看到首先必须确保电脑上安装了g++和libx11 g++ --version //检测g++版本 sudo apt-get install libx11-dev:i386 2.然后可从HTK ...
- 你好,C++(6)2.3 C++兵器谱
2.3 C++兵器谱 正所谓“工欲善其事,必先利其器”,而要想做好C++程序设计,自然也离不开几件像样的兵器.下面我们就来看看C++兵器谱上有哪些神兵利器值得我们学习掌握.排在兵器谱上首要位置的就是 ...
- 使用Hammer.js的H5页面开发DOM的一些小说法
前几天,一个小伙伴说叫我帮他写一个移动端上的一个轮播图,个人一般是不接私活的,毕竟平时工作也是单双休,时间也不很多. 可能大部分程序员,多余的时间都是看看新闻,打游戏,或者学习新的知识,缺少运动吧. ...
- CSS应用五
1. 页面变灰 html { filter: grayscale(100%);//IE浏览器 -webkit-filter: grayscale(100%);//谷歌浏览器 -moz-fi ...
- windows下配置lamp环境(3)---配置PHP5.4
下面配置php Php文件夹里有两个php.ini-*文件,随便修改一个,去掉后缀,变成php.ini (如图) 打开php.ini ,添加php扩展目录723行左右(其实放哪都无所谓,只不过php. ...
- cf C. Jeff and Rounding
http://codeforces.com/contest/352/problem/C 题意:给予N*2个数字,改变其中的N个向上进位,N个向下进位,使最后得到得数与原来数的差的绝对值最小 对每一个浮 ...