问题标签 [mousecapture]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1574 浏览

wpf - Mouse.Capture 是什么意思?

糟糕,我有很多问题无法在 Google 中找到答案。每个人都只是在使用代码,没有人解释他们的目的。是什么Mouse.Captured意思?和Mouse.Capture()做什么?并且(对不起最后一个)什么时候LostMouseCapture发生?

0 投票
1 回答
329 浏览

mouse - Cocoa - 像截屏工具一样捕获鼠标

我试图找到一个基本上让我发疯的话题的答案。有没有办法像 Apple 的屏幕捕捉实用程序一样捕捉鼠标指针?我正在尝试做的事情需要我绘制一个清晰的窗口,它不会激活我的应用程序,而是覆盖所有内容,包括停靠栏。我见过的唯一一个这样做的软件是使用 command+shift+4 的屏幕截图。

我尝试创建一个非激活的 NSPanel,但它不适用于光标矩形,除非我的应用程序处于活动状态(我不希望它处于活动状态)。NSPanel 的问题还在于,如果我在仪表板中,我无法激活它上面的窗口。

我想做的事情的要求是这样的。• 我的应用程序不得激活(保持任何活动应用程序处于活动状态) • 必须能够更改 NSCursor • 鼠标不会触发停靠隐藏/取消隐藏(或任何其他事件) • 即使在仪表板中也可以工作

我之前尝试过此代码,但其限制与上面列出的相同。

0 投票
0 回答
330 浏览

camera - 围绕自身旋转相机,限制 ThreeJS 中的旋转角度

我正在使用 Three.JS 创建一个场景。

我希望能够将我的相机设置在房间的角落,并让观看者在现场旋转相机,而无需移动相机的位置。

另外,我想限制旋转范围(这样他们就不能旋转相机看他们身后)。

我找到FirstPersonControls了,但我希望用户必须单击并拖动才能旋转视图。

我知道minecraft 示例,但它不执行单击和拖动或角度限制。有谁知道完成类似事情的任何其他现有示例?谢谢。

0 投票
1 回答
274 浏览

winapi - 将 SetCapture() 用于无窗口复选框是否有正确的想法?

我的表格控件使用无窗口复选框(因为这里可以有任意数量的复选框)。现在,我使用TrackMouseEvent(TME_LEAVE)并手动检查鼠标是否在WM_LBUTTONUP. 我在我的代码中为由此导致的边缘情况标记了 TODO,例如WM_LBUTTONUP鼠标离开客户区域时丢失。

现在我注意到今天的旧新事物说按钮使用鼠标捕获。这让我开始思考,在研究之后,鼠标捕获会更适合我的需要;如果我的假设是正确的,它将处理我上面提到的各种边缘情况,并且通常更正确。

特别是,我做出的假设是:WM_CAPTURECHANGED即使满足所有其他条件,我也应该放弃任何与捕获相关的操作。我会得到一个WM_CAPTURECHANGED后一个ReleaseCapture()。在 a 之后SetCapture(),我总是以 aWM_LBUTTONUP或 a结尾WM_CAPTURECHANGED,以先到者为准。

我已经阅读了 MSDN 和我通过谷歌搜索“setcapture 正确使用”找到的几篇文章;我只是想确保我有正确的想法并将正确实施。我吗?

我在这里有正确的想法吗?特别是,我的操作顺序是否WM_LBUTTONDOWN正确?谢谢。

0 投票
2 回答
89 浏览

c# - 如何在 DataGridViewRow 中捕获鼠标,使其仅在行内移动

我正在编写一个预订应用程序,它利用 DataGridView 将 Y 轴上的可用房间和 X 轴上的可用时间列为列。

我希望用户能够拖动选择一个时间范围,但它必须一次限制为一行。

控制网格的突出显示方面,以便在鼠标移动时仅突出显示所需的行或在行边界内捕获鼠标是我想到的选项。欢迎任何帮助实施这些任务,甚至是处理任务的新方法!

我宁愿只使用发生鼠标按下事件的 DataRow 来捕获鼠标,不确定是否必须使用剪切矩形来实现这一点。

提前感谢您的帮助。

0 投票
1 回答
233 浏览

c# - 通过 Button 禁用鼠标捕获

ContextMenuStrip我在其中创建自定义Button

当我打开此上下文菜单并将鼠标移到“项目”上时,它会突出显示。但是在我单击Button然后再次将鼠标移到“项目”上之后,它不再突出显示。看起来像Button捕获鼠标。Button单击后如何避免这种情况或释放捕获?

0 投票
1 回答
88 浏览

c# - 拖动时捕获元素的鼠标事件停止触发

我有一些代码在屏幕上绘制一些点,然后允许在按住鼠标左键的同时拖动它们。除了鼠标事件不断地停止触发并且被拖动的点停止移动之外,这种方法还可以工作。

因为所有事件都停止被捕获(出于某种未知原因),这意味着用户可以释放鼠标左键而不会发生任何事情。

奇怪的是,用户可以将鼠标重新定位在该点上,它会再次开始拖动,而无需按住鼠标左键。这会导致非常糟糕的用户体验。

到底是怎么回事?

0 投票
0 回答
288 浏览

winapi - 当我拖出前台窗口时,为什么后台窗口不接收鼠标事件?

当我在前台单击 win32 窗口的非反应区域(例如,菜单栏上的空白区域)并拖动鼠标时,后台窗口不会接收鼠标事件。按钮不会进入悬停状态,光标不会改变等。鼠标被前景窗口“捕获”,尽管它也不会接收消息,除非鼠标悬停在它上面。这种状态一直持续到我松开鼠标按钮。为什么会这样,我怎样才能在不释放鼠标按钮的情况下以编程方式摆脱这种状态?

研究这个问题,我一开始以为和鼠标捕获的概念有关,但现在看来不是。GetCapture() 在此状态下返回 NULL,无论它是什么。

澄清编辑:这在最简单的应用程序中很容易看到。使用默认项目模板在 Visual Studio 中创建一个新的 Win32 项目,这会产生一个空窗口。运行它,然后单击并按住窗口内的空白。将鼠标拖到窗口外,并注意背景窗口中的按钮不会亮起或以其他方式响应鼠标悬停事件。即使我在 WndProc 中粘贴 ReleaseCapture() 以便它在每条消息后触发,结果也是一样的。看起来这与 Get/SetCapture 意义上的鼠标捕获无关。

0 投票
1 回答
1527 浏览

c# - 使用 Mouse.Capture 检测给定控件之外的点击

我在 WPF 项目中有一个文本框,我试图检测鼠标单击应用程序上除文本框以外的任何位置。

这是我到目前为止的代码。

我遇到的问题是事件处理程序永远不会被调用。我尝试捕获 Capture() 函数的返回值,但它显示为 true。谁能告诉我我做错了什么?

0 投票
2 回答
555 浏览

c# - 即使另一个控件已经捕获了鼠标,如何获取控件的 MouseEvents

我正在研究从一个引脚连接到另一个引脚的线路连接器控件。典型的 WPF 解决方案是在用户开始拖动连接线时使用鼠标捕获。不幸的是,如果用户位于有效的 pin 上,我需要一个鼠标悬停指示器。但是该指示器从未显示,因为当我之前已经捕获鼠标时,目标引脚从未获得鼠标事件。

我写了一个轻量级示例来显示我的问题:

以及文件背后的代码:

如果启用了 Canvas 上的鼠标捕获,则不会调用该TestOnMouseEnter函数TestOnMouseLeave。如果禁用鼠标捕获,则会调用这两个函数。我知道这是 WPF 的典型行为,但有没有人知道我是如何得到通知的,即使另一个控件也有捕获?