static
void
Main()
{
//程序开始时候设置一个消息筛选MessageFilter,意思就是只要属于本程序的消息都要经过处理以后再发给本程序
打个比方,程序起来以后再程序的text里输入一个9,但是这个9是系统先获得,然后系统通过消息的方式发给应用程序。这里的essageFilter的意思就是所有系统发给应用程序的消息都要处理一下!
RButtonMessageFilter
filter
=
new
RButtonMessageFilter()
Application.AddMessageFilter(filter)
Application.EnableVisualStyles()
Application.SetCompatibleTextRenderingDefault(false)
Application.Run(new
frmMain())
//移除
Application.RemoveMessageFilter(filter)
}在程序开始的时候添加一个本程序的系统消息的监测。
然后下面的类里处理所有的系统消息!
public
class
RButtonMessageFilter
:
IMessageFilter
{
public
bool
PreFilterMessage(ref
Message
m)
{
const
int
WM_RBUTTONDBLCLK
=
0x206
const
int
WM_RBUTTONDOWN
=
0x204
const
int
WM_RBUTTONUP
=
0x205
switch
(m.Msg)
{
//过滤掉所有与右键有关的消息
case
WM_RBUTTONDBLCLK:
case
WM_RBUTTONDOWN:
case
WM_RBUTTONUP:
{
return
true
}
case
WM_KEYDOWN:
//有键盘按下
{
int
k=
m.WParam.ToInt32()
if
(k
==
57)
{
//屏蔽按键9
9的
asicii吗是57
return
true
}
else
{
//按下的其他建不屏蔽
return
false
}
}
default:
{
return
false
}
}
}
}
设置一个flag d框的时候变化值。在ontouch中加入特殊处理,屏蔽掉那两个键。如 :private boolean show_flag=falseif(d出框时) { show_flag=true} private void onTouch() { if(show_flag==true) { 在此设置 “确定”坐标点击有效 }else{ } }欢迎分享,转载请注明来源:内存溢出
评论列表(0条)