A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 孙铭泽 中级黑马   /  2012-8-23 22:28  /  1777 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

   在.net(C# or vb.net)中如何用户自定义消息,并在窗体中处理这些消息. 在 form 中重载 DefWndProc 函数来处理消息:
protected override void DefWndProc ( ref System.WinForms.Message m )
{ switch(m.msg) { case WM_Lbutton : ///string 与 MFC 中的 CString 的 Format 函数的使用方法有所不同 string message = string.Format("收到消息!参数为:{0},{1}",m.wParam,m.lParam); MessageBox.Show(message);///显示一个消息框 break; case USER: 处理的代码 default: base.DefWndProc(ref m);///调用基类函数处理非自定义消息. break; } }

1 个回复

倒序浏览
1. C#中的事件也是通过封装系统消息来实现的,
2. 如果你在DefWndProc函数中不处理该事件,他会交给系统来处理该消息,系统便会通过代理来实现鼠标单击的处理函数;
3. 因此你可以通过defproc 函数来拦截消息,比如你想拦截某个按钮的单击消息。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马