C# 获取鼠标坐标!!!!!(看上容易却极难)!

C# 获取鼠标坐标!!!!!(看上容易却极难)!,第1张

private void Form1_MouseMove(object sender, MouseEventArgs e)

{

thislabel2Location = new Point(eX + 10, eY);

thislabel2Text = "当前坐标:"+eX + "," + eY;

}

private void Form1_MouseDown(object sender, MouseEventArgs e)

{

if(eButton == MouseButtonsLeft)

{

thislabel2Visible = true;

}//判断是否为左键

}

private void Form1_MouseUp(object sender, MouseEventArgs e)

{

thislabel2Visible = false;

}

MouseMove:当鼠标在窗体移动的触发事件,跟e获取x,y的坐标

MouseDown:当按下鼠标的时候,判断是否为左键,如果true,就把labelvisible=true;设置显示,

MouseUp:当放开(d出)鼠标的时候,就直接设置Label为visible=false;o(∩_∩)o够明白吧。。

你是要随着鼠标移动,获取鼠标坐标值吧?

那函数要写在OnMouseMove里面。

OnDraw是绘图函数。

CWnd::OnMouseMove

afx_msg void OnMouseMove( UINT

nFlags, CPoint point );

CPoint就是你要的坐标值。然后调用Invalidate或者UpdateWindow来刷新窗口,系统会自动调用OnDraw

我用的按键是V592版,免费的,没有“一键获取当前鼠标的坐标和颜色”这个功能,不知道新版本有没有,只有“得到鼠标当前位置”和“得到指定点颜色”这两个功能一起用。

你的脚本获取坐标的语句没有错,只是d出窗口那一句有问题,所以显示不出来,改成下面这样就行了

VBS dim x,y

//声明变量

VBSCall GetCursorPos(x,y)

//得到当前鼠标的坐标位置 并保存到变量x,y中

VBSCall MessageBox("坐标为:x="+cstr(x)+" y="+cstr(y))

//d出窗口 输出坐标的值

Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Type POINTAPI

X As Long

Y As Long

End Type

Public Function getmouse_x_y() As POINTAPI

GetCursorPos getmouse_x_y

End Function

sub test()

'call getmouse_x_y '调用“获取鼠标坐标值过程”(假定你们给的过程/程序,名叫getmouse_x_y)

if getmouse_x_yx>100 and getmouse_x_yy>100 then …… '根据返回当前鼠标的坐标值执行某过程/程序

……

end sub

其实很简单,逐行手敲,亲测可用。

Private Type POINTAPI

X As Long

Y As Long

End Type

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Private Sub Command1_Click()

Dim Point As POINTAPI

GetCursorPos Point

Print "鼠标横坐标为:" & PointX

Print "鼠标纵坐标为:" & PointY '打印鼠标位置坐标

End Sub

吸使用以下几种方式获取:

1PageX/PageX:鼠标在页面上的位置,从页面左上角开始,即是以页面为参考点,不随滑动条移动而变化

2clientX/clientY:鼠标在页面上可视区域的位置,从浏览器可视区域左上角开始,即是以浏览器滑动条此刻的滑动到的位置为参考点,随滑动条移动 而变化

可是悲剧的是,PageX只有FF特有,IE这个悲剧没有啊T_T,所以大牛们想出了一个办法

PageY=clientY+scrollTop-clientTop;(只讨论Y轴,X轴同理,下同)

3screenX/screenY:鼠标在屏幕上的位置,从屏幕左上角开始(w3c标准)

4offsetX/offsetY:IE特有,鼠标相比较于触发事件的元素的位置,以元素盒子模型的内容区域的左上角为参考点,如果有boder,可能出现负值

5

layerX/layerY:FF特有,鼠标相比较于当前坐标系的位置,即如果触发元素没有设置绝对定位或相对定位,以页面为参考点,如果有,将改变参考坐标系,从触发元素盒子模型的border区域的左上角为参考点也就是当触发元素设置了相对或者绝对定位后,layerX和offsetX就幸福地生活在一起^-^,几乎相等,唯一不同就是一个从border为参考点,一个以内容为参考点

chrome和safari一条龙通杀!完全支持所有属性其中(offsetX和layerX都是以border为参考点)

下面这个是获取相对于屏幕的坐标

documentonmousemove=function(e){e=e e:windowevent;documentwriteln("X:"+escreenX+"Y:"+escreenY);}

以上就是关于C# 获取鼠标坐标!!!!!(看上容易却极难)!全部的内容,包括:C# 获取鼠标坐标!!!!!(看上容易却极难)!、关于C++提取鼠标位置处的坐标的程序、怎样获取按键精灵中鼠标的坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9687701.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存