|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
有个问题想请教你一下,呵呵:)你觉得将来学什么方向比较好,我真是想不出来,知道的太少了,麻烦了。IMessageFilter接口
IMessageFilter接口同意使用程序在动静被调剂到控件或窗体之前捕捉它。
能够将完成IMessageFilter接口的类增加到使用程序的动静泵中,以在动静被调剂到控件或窗体之前将
它选择出来或实行其他操纵。若要将动静选择器增加到使用程序的动静泵中,请利用Application类中的
AddMessageFilter办法。
Application.AddMessageFilter办法
增加动静选择器以便在向方针传送Windows动静时监督这些动静。
[VisualBasic]
PublicSharedSubAddMessageFilter(ByValvalueAsIMessageFilter)
参数
value
您要安装的IMessageFilter接口的完成。
备注
利用动静选择器来避免激发特定事务,或在将某事务传送给事务处置程序之前利用动静选择器对其实行特
殊操纵。动静选择器对特定线程是独一的。
若要避免调剂某动静,传送给该办法的value参数实例必需用途理该动静的代码重写PreFilterMessage办法
。该办法必需前往false。
告诫向使用程序的动静泵增加动静选择器会下降功能。
示例
[VisualBasic,C#,C++]必需先供应IMessageFilter接口的一个完成,然后才可使用动静选择器。
上面的类创立一个名为TestMessageFilter的动静选择器。此选择器制止与鼠标左键有关的一切动静。
[VisualBasic]
Createsamessagefilter.
PublicClassTestMessageFilter
ImplementsIMessageFilter
PublicFunctionPreFilterMessage(ByRefmAsSystem.Windows.Forms.Message)_
AsBooleanImplementsIMessageFilter.PreFilterMessage
Blocksallthemessagesrelatingtotheleftmousebutton.
If((m.Msg>=513)And(m.Msg<=515))Then
Console.WriteLine("Processingthemessages:"&m.Msg)
ReturnTrue
EndIf
ReturnFalse
EndFunction
EndClass
用Esc键加入程序
ImplementsIMessageFilter
PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles
MyBase.Load
assignmessagetoappandform
Application.AddMessageFilter(Me)
EndSub
PublicFunctionPreFilterMessage(ByRefmAsSystem.Windows.Forms.Message)AsBoolean
ImplementsIMessageFilter.PreFilterMessage
DimkeyCodeAsKeys=CType(m.WParam.ToInt32(),Keys)AndKeys.KeyCode
IfkeyCode=Keys.EscapeThen
End 停止程序。我们在此能够挪用各类办法、历程。
EndIf
EndFunction
我也不知道,我原来理解的,NET就是C++编程,只是与JAVA相对,呵呵。以为.ET就是高级C++编程。 |
|