【C#】限制鼠标只能在环上、在圆内移动

【C#】限制鼠标只能在环上、在圆内移动,第1张

在winform中:给你一个按钮的示例

private void button1_Click(object sender,EventArgs e)

{

thisCursor=new Cursor(CursorCurrentHandle);

CursorPosition=new Point(CursorPositionX,CursorPositionY);

CursorClip=new Rectangle(thisLocation,thisSize);

}

说明:在c#类库中,我知道有针对在矩形内的限制。貌似没有针对圆的限制哈。不过你可以用程序动态改变Rectangle中第二个参数值,使之符合你的要求。。 第一个参数是左上角的位置,你也可以用重载方法

CursorClip=new Rectangle(int x, int y, int width, int height)指定左上角位置

//解除对鼠标活动区域的限制

private void button2_Click(object sender,EventArgs e)

{

Screen[] screens=ScreenAllScreens;

thisCursor=new Cursor(CursorCurrentHandle);

CursorClip=screens[0]Bounds;

}

鼠标老是自己乱动,一般来说可能是鼠标出故障,先排除现在光学鼠标的垫子问题,换一块鼠标垫试试,最简单就是换一张平滑的白纸垫在下面看看,还会不会乱飘,如果还是乱飘再检查鼠标底部光学反应器的部位有没有异物堵住,清理干净也可以解决问题。如果以上无法解决,就换个usb口试试。

以上都无法解决就要把鼠标换个试试了。因为鼠标很可能坏了。

[STAThread]

static

void

Main()

{

//程序开始时候设置一个消息筛选MessageFilter,意思就是只要属于本程序的消息都要经过处理以后再发给本程序

打个比方,程序起来以后再程序的text里输入一个9,但是这个9是系统先获得,然后系统通过消息的方式发给应用程序。这里的essageFilter的意思就是所有系统发给应用程序的消息都要处理一下!

RButtonMessageFilter

filter

=

new

RButtonMessageFilter();

ApplicationAddMessageFilter(filter);

ApplicationEnableVisualStyles();

ApplicationSetCompatibleTextRenderingDefault(false);

ApplicationRun(new

frmMain());

//移除

ApplicationRemoveMessageFilter(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

(mMsg)

{

//过滤掉所有与右键有关的消息

case

WM_RBUTTONDBLCLK:

case

WM_RBUTTONDOWN:

case

WM_RBUTTONUP:

{

return

true;

}

case

WM_KEYDOWN:

//有键盘按下

{

int

k=

mWParamToInt32();

if

(k

==

57)

{

//屏蔽按键9

9的

asicii吗是57

return

true;

}

else

{

//按下的其他建不屏蔽

return

false;

}

}

default:

{

return

false;

}

}

}

}

像你这种情况,首先怀疑的就是鼠标,可你说鼠标没问题,相信你应该把鼠标拿到别的电脑上试过了。

接口你说也没问题。

在注册表中没有哪一项是可以禁止鼠标移动的,只能禁止右键和中间的滚轮。

设备管理器中鼠标是叹号,表明系统无法识别鼠标这个外接设备。这种现象经常是硬件设备的驱动不正确,或没装导致的。但鼠标绝大多数 *** 作系统都能自带了鼠标驱动,能自己识别。你的系统无法识别鼠标。很可能的原因就是系统损坏了,只是小问题,但确刚好是有关鼠标的地方出了问题。

如果鼠标是好的,USB接口是好的,设备管理器中鼠标是叹号,建议恢复系统。

但最好的方法,还是先找另一个鼠标,插上,试一下能不能用。

已经确定不是鼠标的问题

USB接口插音箱可以用,确定也不是USB接口的问题,同时USB接口的驱动也没问题!

插上鼠标无法使用,设备管理器叹号显示,说明系统无法识别鼠标这个设备。可能的原因:1,鼠标没有驱动。但绝大多数系统都带有通用鼠标驱动,基本能识别所有类型鼠标。

2,系统有关鼠标的注册表损坏。

建议解决方法:1,换一个非USB接口的鼠标,试一试能否正常使用。

2,重装系统。

这有两种可能:一种是键盘上的“Esc”被压住或者卡住了,让它一直保持在”按下“的状态。另一种可能是鼠标故障,比如鼠标左键接触点的松动,无法始终保持按压状态。

(1)连续按两次“Esc”键,让Esc键从下压状态d出,如果此时恢复正常的话,就是第一种情况。

(2)如果是鼠标的问题,可以尝试换一个鼠标,看看是否可以拖动图标,如果可以的话那就是鼠标的问题。

扩展资料:

Windows 7,中文名称视窗7,是由微软公司(Microsoft)开发的 *** 作系统,内核版本号为Windows NT 61。Windows 7可供家庭及商业工作环境:笔记本电脑 、平板电脑 、多媒体中心等使用。和同为NT6成员的Windows Vista一脉相承,Windows 7继承了包括Aero风格等多项功能,并且在此基础上增添了些许功能。

以加拿大滑雪圣地Blackcomb为开发代号的 *** 作系统最初被计划为Windows XP和Windows Server 2003的后续版本。Blackcomb计划的主要特性是要强调数据的搜索查询和与之配套名为 WinFS的高级文件系统。但在2003年,随着开发代号为Longhorn的过渡性简化版本的提出,Blackcomb计划被延后。

参考资料:

百度百科--windows7

以上就是关于【C#】限制鼠标只能在环上、在圆内移动全部的内容,包括:【C#】限制鼠标只能在环上、在圆内移动、鼠标老是自己动来动去怎么办、如何用程序屏蔽键盘以及鼠标消息鼠标移动也无效。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10623364.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存