在浏览器中,我试图确定代表鼠标位置的点是否在我称之为"外部区域"的位置.例如,在附加的图像中,外部区域是具有蓝色背景的区域.
替代文字http://i34.tinypic.com/r8grwz.png
在代码和图像中,W代表浏览器视口的宽度,而H代表高度,而x代表鼠标位置
现在,我正在使用这段代码来做到这一点:
if (((x>0 && x<w1) || (x>w2 && x<W))
||
((x>w1 && x<w2) &&
((y>0 && y<h1) || (y>h2 && y<H))
))
console.log("we are in the outer area")
Run Code Online (Sandbox Code Playgroud)
虽然它按原样工作,但我想知道是否有更好的方法呢?
我目前正在开发图像查看器应用程序。在此应用程序中,我有一个所谓的“平移缩放”功能。这意味着,当按住某个鼠标按钮时,用户可以通过前后平移来缩放图像。
它工作正常,但随着该功能的使用,鼠标(自然地)在屏幕上上下移动,并在某个时刻到达屏幕边框,这将使其停止。相反,我想要一种鼠标保持静止并且仅图像放大倍数发生变化的行为。
我尝试通过调用QCursor::setPos内部来实现此目的QWidget::mouseMoveEvent,并在处理移动后将鼠标重置到初始位置。只要鼠标几乎保持静止(前后摆动),它就可以工作。但是,这将导致再次调用鼠标移动事件,从而有效地取消我刚刚所做的调整。这将导致“摆动”效果。每一次调整都会立即逆转。
这是一个代码片段,这样您就可以了解我在做什么:
void ImageView::mouseMoveEvent(QMouseEvent *e) {
//some code
if (_panZooming) {
//some code here
//doesn't work as expected because it invokes this event again
QCursor::setPos(mapToGlobal(_initialMousePosition.toPoint()));
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法防止使用时发生鼠标移动事件QCursor::setPos?
我想要获得Form的鼠标位置的最佳方法.
我现在在变量中设置鼠标位置的值,以便在另一种方法"Like Form1_Click"中获取它们.
有没有更好的方法呢?
非常感谢你.
我需要相对于tkinter窗口获取鼠标位置.
我有一个TGridLayout在Firemonkey HD应用程序中填充了一些图像.在gridLayout的onMouseDown事件中,我想获取用户点击的图像对象,但我只有鼠标坐标.
为每个图像实现onMouseDown事件不是一种选择,因为如果从gridlayout中删除图像,则会留下空白空间.在这种情况下,我还想知道用户是否已经点击了这个空白区域.
是否有某种"getChildAtPos"或"FindVCLWindow"模拟在Firemonkey?
谢谢!
我在MATLAB工作,我想从屏幕上的任何位置获取光标位置.
我想在鼠标移动时不断获取光标的位置.但是,我发现当鼠标只在GUI中移动时,MATLAB可以获得鼠标位置.
如何在MATLAB中的GUI中实现相同的功能而不是它?
我被困在这里了。我想在“看着”光标(的角度)时绘制眼睛。此外,它应该包含在更大的圆圈/象限内(就像眼球一样)。可悲的是,它只是不会在正确的位置/角度和每次鼠标移动时吸引我的注意力。它唯一要做的就是最初在 (0,0) 处绘制一个椭圆,但这不是我想要的。
我的想法是用毕达哥拉斯定理计算三角形的比率。然后在方法中应用正确的坐标(具有正确的比例)drawEllipse();。每次移动光标时都应重复此操作。
您可以检查我的图像以进行数学推理。

这是我的代码,请注意,面板是在设计器模式下制作的,该模式不包含在此代码中,但应该不是什么大问题:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace oogjes2
{
public partial class Form1 : Form
{
public int mousex;
public int mousey;
public Form1()
{
InitializeComponent();
panel1.Paint += paintpanel;
panel1.MouseMove += panel1_MouseMove;
}
//panel1 cover the screen from (0.0) and onwards,
void panel1_MouseMove(object sender, MouseEventArgs mea)
{
int mousex = mea.X;
int mousey = mea.Y;
}
void paintpanel(object obj, PaintEventArgs …Run Code Online (Sandbox Code Playgroud) 只需拖动鼠标就可以很容易地将光标的位置放在窗体的边界之外,当位置发生变化时,它会向窗体发送许多值,形成下面的代码行.
MessageBox.Show(Cursor.Position.ToString());
Run Code Online (Sandbox Code Playgroud)
但是当用户点击表格边界时,我需要获得鼠标位置.不仅仅是悬停鼠标.我使用以下代码行来执行此操作:
private void Form1_Deactivate(object sender, EventArgs e)
{
MessageBox.Show(Cursor.Position.ToString());
}
Run Code Online (Sandbox Code Playgroud)
我放置了MessageBox.Show(Cursor.Position.ToString()); 进入表单停用事件.当用户在表单外单击时,此事件肯定会发生.但是当用户没有单击外部但是使用ALT + TAB组合键更改程序时,它也会发送错误的值.实际上我必须从第一次点击的位置开始捕捉该区域的屏幕截图.因此,当在表单外部单击时,我需要光标的位置.喜欢:

我一直在尝试采用几个简单的MooTools操作的逻辑并将其转换为使用jQuery.
我想要的逻辑是这个jsfiddle,它允许在css大小调整的画布元素上获得准确的鼠标位置.
我找到了答案,所以我已经工作了几个小时但没有用
我想我理解他的逻辑,但由于某种原因,我没有看到结果
以下是我与阿拜的逻辑迄今所做的从他的回答注释掉
// Get the change ratio for the new css set size
//var cssScale = [canvas.getSize().x / canvas.get('width'), canvas.getSize().y / canvas.get('height')];
var cssScale = [$('canvas').height() / $('canvas').attr('height'), $('canvas').width() / $('canvas').attr('$('canvas').height() / $('canvas').attr('height'),')]
//Create an object of the dimensions
// I think from my looking at the jsfiddle x&y is the position of the rect in his canvas
// and w&h are the height and width of that rect so it's …Run Code Online (Sandbox Code Playgroud) 我正在尝试开发HTML5白板.我希望查看电路板的用户知道演示者在屏幕中指向的确切位置.我可以使用这个jquery函数收集鼠标移动.
但即使我成功将此值传递给使用php的其他客户端,我该如何模拟它?是否可以根据从演示者处获得的坐标移动小指针图像?
mouse-position ×10
c# ×3
javascript ×2
jquery ×2
mouse ×2
mouseevent ×2
.net ×1
browser ×1
c++ ×1
canvas ×1
childcontrol ×1
delphi ×1
drawellipse ×1
firemonkey ×1
html5 ×1
matlab ×1
mootools ×1
mousedown ×1
onmousemove ×1
python ×1
qcursor ×1
qt ×1
scale ×1
tkinter ×1
whiteboard ×1