The Last Day Of Summer
.NET技术 C# ASP.net ActiveReport SICP 代码生成 报表应用 RDLC
posts - 305, comments - 1913, trackbacks - 76, articles - 3
博客园
::
首页
::
新随笔
::
联系
::
订阅
::
管理
Winform中在Form上截取消息的两种方法
Posted on 2006-01-09 18:41
Cure
阅读(1413)
评论(2)
编辑
收藏
所属分类:
C#代码与实例
比较常用的是重载Form的DefWndProc方法,例如截取鼠标按下的消息:
protected
override
void
DefWndProc(
ref
Message m)
{
if
( m.Msg
==
0x0201
)
{
MessageBox.Show(m.Msg.ToString());
}
else
{
base
.DefWndProc (
ref
m);
}
}
还可以通过另一种办法,使用IMessageFilter 接口:
public
class
MessageFilter : IMessageFilter
{
public
bool
PreFilterMessage(
ref
Message m)
{
if
(m.Msg
==
0x0201
)
{
MessageBox.Show(
"
WM_LBUTTONDOWN is:
"
+
m.Msg);
return
true
;
}
return
false
;
}
}
然后使用Application.AddMessageFilter方法,例如:
private static MessageFilter msgFliter = new MessageFilter();
在Main方法中注册消息筛选器:
Application.AddMessageFilter(msgFliter);
如果要取消注册,可以调用Application.RemoveMessageFilter方法
在这里有一个Windows的MessageID的枚举,挺有用的,好几次都忘了地址,这次写在这里好好保存
Windows Message ID constants
Feedback
#1楼
回复
引用
查看
2007-11-14 12:02 by
deeloo
这个鼠标点击不分左键和右键吗,我想做过滤鼠标右键的消息,它应该是用什么常量?
#2楼
[
楼主
]
回复
引用
查看
2007-11-15 17:58 by
Cure
@deeloo
鼠标右键的是:WM_RBUTTONDOWN = 0x0204
更多的可以在随笔最后的链接里下载sourcecode,如果不能下载,参照下面的:
http://www.cnblogs.com/dahuzizyd/archive/2007/11/15/Windows_Message_ID.html
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
网站首页
新闻频道
社区
小组
博问
网摘
闪存
找找看
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
该文被作者在 2006-07-12 18:35 编辑过
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索
相关文章:
一个绝对有效的治疗“寻常疣(干日疮,瘊子)”的方法
电脑故障处理小经验—IE无法打开链接的处理方法
相关链接:
所属分类的其他文章:
Windows Message ID 常量列表
使用C#和Excel进行报表开发(八)-用程序绑定数据源
使用CSS制作圆角效果
用javascript显示简单的等待信息
使用C#和Excel进行报表开发(六)-操作行和列
如何在WebForm中使用javascript防止连打(双击)
如何用javascript判断录入的日期是否合法
Infragistics.WebUI.UltraWebTab的使用的两个问题
在Winform中如何实现ListView排序
如何用C#在winform中实现简单的查找功能
最新IT新闻:
Facebook创始人:信息共享或存摩尔定律
微软承认Vista用户账户控制功能有问题
资本寒冬侵袭中国视频网站 营销春天或不远
金融风暴波及全球创业板 中国概念股难独善其身
携程范敏:CEO从接发传真做起
Powered by:
博客园
Copyright © Cure
公告
本博客内容如无特别说明,皆为原创,转载请注明出处
与我互动
给我发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
我参与的团队
敏捷软件开发组织(0/284)
BluePrint翻译团队(0/171)
报表与图表团队(0/178)
微软(西安).NET开发俱乐部(0/747)
我的标签
Rails(31)
ruby(31)
activerecord(23)
Subversion(2)
Redmine(2)
Active Support(1)
随笔分类
(337)
.Net开发(49)
C#代码与实例(44)
Python(19)
Ruby On Rails(64)
报表应用(25)
代码生成(10)
读书(11)
非技术(40)
建模技术(3)
敏捷开发及实践 (29)
其他技术(16)
网络资源(6)
业界新闻(21)
文章分类
(3)
.net相关(2)
其他(1)
相册
关山牧场
云台山
收藏夹
(43)
.NET技术(6)
DSM和DSL(1)
SICP(3)
程序开发基础(1)
方法学(6)
领域模型 (9)
面向对象分析与设计(11)
企业应用(6)
技术站点
agilealliance
agilemodeling
artima developer
asp.net
aspalliance
codeguru
CodeProject
c-sharpcorner
css zen garden
developer.*
developersdex
devx
dsmforum
freewebsitetemplates
FTPOnline
infoq
informIT
MSDN
openwebdesign
oreillynet
sdmagazine
sdtimes
theserverside
zeroweb
其他
flickr
Youtube
积分与排名
积分 - 564073
排名 - 34
最新评论
1. re: Ruby on rails开发从头来(windows)(十三)-订单(Order)
ありがとう!
--rubyboy
2. re: 下载安装了ubuntu 8.04,感觉很好很强大
正在下载......
--巩大户
3. re: 报表控件团队成立了!!
申请加入 用户名 diage
正在做报表打印相关!
--巩大户
4. re: Gmail 邀请
博主,我也想要一个,请给个邀请吧:)
--Amy Huang
5. re: Ruby on rails开发从头来(windows)(二)-创建项目和第一个Hello world
@轩辕武
初学者直接看rails是没有什么作用的,至少也得编几个星期的纯ruby代码才能领悟到ruby的皮毛
--ac noAh
阅读排行榜
1. 一个反编译工具Reflector(不是Reflactor)(53815)
2. 也说Bug管理工具(11708)
3. Gmail 邀请(9287)
4. 什么是CLS?(7797)
5. Bug管理的流程和几个重点(7754)
6. 使用ActiveReport for .net 进行报表开发(一)--开始(6650)
7. Bug跟踪软件(6606)
8. 使用ZedGraph制作动态更新的统计图(6604)
9. 使用C#和Excel进行报表开发(三)-生成统计图(Chart)(6366)
10. python!让人惊讶的python(6199)
11. 使用C#和Excel进行报表开发(八)-用程序绑定数据源 (5930)
12. python版的Hello World(5317)
13. 将Excel应用于报表开发中(一)--开始(5015)
14. 使用ActiveReport for .net 进行报表开发(二)--绑定数据源(5014)
15. 使用PowerDesigner进行代码生成(4902)
16. 使用ActiveReports for .net 进行报表开发(十一)--迁移到3.0(4879)
17. 使用C#和Excel进行报表开发(二)-操作统计图(Chart)(4678)
18. Ruby on rails开发从头来(windows)(一)-使用InstantRails快速搭建Ruby On Rails开发环境(4624)
19. C#操作Excel开发报表系列整理(4491)
20. 怎样从youtube或国内视频网站上下载视频(FLV Downloader)(4234)