问题标签 [mousewheel]
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.
delphi - 如何在 Delphi 2009 中对自定义组件进行鼠标平移
我正在使用 D2009。我有一个从 TWinControl 派生的组件,我想在其中添加鼠标平移。我看到有一个新的控件样式 csPannable 和一个新的控件状态 csPanning。我一直在查看 vcl 源以试图弄清楚,但到目前为止我有点迷茫。有谁知道这方面的任何文件?非常感谢任何建议或链接!
visual-studio-2010 - 我可以在应用程序的主循环之前抑制选定的输入吗?
作为我的 Visual Studio 实用程序插件SamTools的一部分,我有一个鼠标输入例程,它可以捕获 Ctrl+MouseWheel 并将 pageup/pagedown 命令发送到活动文本窗口。Visual Studio 2010 添加了一个新的“功能”,使用该手势进行放大/缩小(barf)。目前,我的加载项确实发送了滚动命令,但 Visual Studio 仍然会更改字体大小,因为我没有吃掉输入。
我打电话给SetWindowsHookEx
. 这是回调代码。我的问题是:当我按下 Ctrl 键获得鼠标滚轮事件时,防止 Visual Studio 将 Ctrl+MouseWheel 输入作为缩放命令处理的最佳方法是根本不调用吗?CallNextHookEx
(请记住,这是我的一些旧代码。):)
这是响应MouseWheel
事件执行的代码:
PS:SamTools 是开源的 (GPL) - 您可以从链接下载它,源代码在安装程序中。
PSS:Ctrl+[+] 和 Ctrl+[-] 更适合缩放。让 Ctrl+MouseWheel 滚动(更常用的命令)。
c# - 使标签页不处理鼠标滚轮事件(C#)
我制作了一个在 TabPages 中使用 PictureBoxes 的 MDI(选项卡式)应用程序。图片框有时比标签页大,因此会出现滚动条。它是使用 Windows 窗体用 C# 编写的。
在我的标签页中,我在 MouseWheel 事件中捕获和处理鼠标滚轮事件(我用它来旋转我在图片框中绘制的一些对象)。
但是当我有滚动条时,当我旋转鼠标滚轮时,我的对象会旋转,但标签页也会向下滚动。
如何使标签页不处理鼠标滚轮事件,从而使其不向下滚动?我希望它只有在用户单击并拖动滚动条时才能滚动。
wpf - WPF - 将鼠标滚轮消息发送到 Frame/WebBrowser 控件
我正在使用 WebBrowser 控件(或 Frame,尚未决定)在 WPF 应用程序中托管一些 Web 内容。我想使用一些外部影响来模拟 Web 内容中的鼠标滚轮行为。我的 WPF 应用程序是否可以使用我指定的 Delta(滚动)值将鼠标消息发送到 WebBrowser 控件?
c# - 在非聚焦窗口上检测鼠标滚轮?
我的目标是制作一个浮动工具栏(作为它自己的 C# 应用程序),当用户在我身上使用滚轮时,我想更改可见的按钮。听起来很容易,应该只是这个单行的问题:
我遇到的问题是鼠标滚轮处理程序仅在我的应用程序具有焦点时才被调用。这意味着用户必须先单击,然后再单击鼠标滚轮。这对我正在尝试做的事情不起作用。
我可以挂钩 MouseHover 事件处理程序,然后调用 form.Activate() 以获得焦点。这是次优的,因为如果用户在将鼠标悬停在我的应用程序上后立即使用滚轮(而不是稍等片刻),焦点仍将位于前一个应用程序上,并且它会获得鼠标滚轮事件。
很自然的做法是挂钩 MouseEnter 事件并在那里调用 Activate(),但随后我的应用程序并没有出现在前面,而是它的图标开始在任务栏上闪烁。我正在使用Win7,但这个问题可能比这更老。
理想情况下,我想做的是检测鼠标滚轮事件,而不必担心我的应用程序是否有焦点。以前的应用程序保持输入焦点确实会更好,例如,如果用户在记事本中,他们可以键入,将鼠标悬停到我的应用程序,使用滚轮,查看他们看到的内容并决定继续在记事本中输入. 理想情况下,我不希望他们在这种情况下甚至必须单击一次。
不过,如果没有其他方法,我会选择一个将焦点转移到我的应用程序的解决方案。
到目前为止,我使用 C# 和 Windows 窗体,但如果可以解决我的问题,我愿意使用不同的东西。
那么:我如何才能看到那些鼠标滚轮事件而无需用户先单击以聚焦我的应用程序?
c# - 即使在 C# 中的嵌套面板控件上也看不到 MouseWheel
我在表单上的 TabControl 上的 TabPage 上有一个面板。
我有一个鼠标事件函数“control_MouseWheel”。
如果我将该函数绑定到仅面板的 MouseWheel 事件,则滚动鼠标滚轮时不会发生任何事情。
如果我将该函数绑定到面板和 TabPage 或面板、TabPage 和 TabControl 的全部三个的 MouseWheel 事件,则不会发生任何事情。
如果我随后将该函数绑定到窗体的 MouseWheel 事件,则鼠标事件处理程序将触发,但仅在窗体上。我可以通过使用 ConsoleWriteline() 看到这一点。
如何让它为我真正想要使用鼠标滚轮事件的底层面板触发?
我是否缺少子控件堆栈的属性设置?
javascript - Flash:在全屏模式下使用鼠标滚轮事件(Windows 和 Mac)
虽然 Flash 有一个鼠标滚轮事件(MouseEvent.MOUSE_WHEEL),但它带来了很多问题。
首先是 Mac 尚不支持该事件。所以有一堆解决方案,所有这些(基本上)都在javascript中捕获鼠标滚轮(或DOMMouseScroll)事件并将其传递给flash应用程序。幸运的是,在我测试过的所有 Mac 浏览器下,这在 flash 处于全屏模式时也有效。
问题 2 是 flash 忽略了具有小“增量”的鼠标滚轮事件。例如,Microsoft 的带有“Smooth Scroll”的 IntelliPoint 鼠标会导致此问题。对此的解决方案与 mac 的解决方案相同...即在浏览器中捕获 javascript 鼠标滚轮事件并将其传递给应用程序。问题是我测试的 Windows 中的浏览器(firefox,即 safari 和 chrome),当 flash 处于全屏模式时,它们似乎没有捕获此事件。有谁知道为什么或如何解决这个问题?
我目前有一个混合解决方案,它总是从 javascript 中获取事件(在非全屏或全屏模式下),除非它在 Windows 上处于全屏模式(此时它从 flash mousewheel 事件中获取它们)。因此,它唯一失败的情况是在 Windows 上使用具有小增量的鼠标处于全屏模式。有人有完整的解决方案吗?或者只是一个更好的?
c# - 如何使用鼠标滚轮滚动面板?
我的表单上有一个面板,AutoScroll 设置为 true,因此滚动条会自动出现。
我怎样才能使用户可以使用鼠标滚轮滚动面板?谢谢。
winapi - Win32 弹出菜单可以响应滚轮吗?
假设我有一个标准的 Win32 弹出菜单,它比屏幕还高。它在顶部产生一个向上箭头,在底部产生一个向下箭头,因此用户可以滚动浏览其项目。
这样的菜单是否有可能响应鼠标滚轮滚动?滚轮事件被发送到焦点控件,而不是菜单,因此通常发生的是菜单后面的文本编辑器滚动。
更新:也就是说,有没有办法让我路由滚轮事件,或者我可以发送一些消息到弹出的打开菜单以编程方式将其向上或向下滚动一个档次?