我需要一种在html页面上更改鼠标光标的方法.我知道这可以用css完成,但是我需要能够在运行时更改它,例如在页面上有按钮,当它们被点击时,它们将光标更改为特定的自定义图形.我认为这样做的最好(或唯一?)方式是通过javascript?我希望有一种很好的方法可以在所有主流浏览器上运行.如果有人能帮助我,我将非常感激.
提前致谢
我正在使用透明光标主题技巧(请参阅http://obiltschnig.com/2010/08/14/hiding-the-gtkx11-mouse-cursor/)将X11光标隐藏在触摸屏的全屏Linux GTK +应用程序中 -基于设备.我基本上使用Xorg服务器运行基于WebKit GTK +的应用程序,在全屏模式下没有窗口管理器.现在,通过设置透明的1像素光标默认主题来隐藏光标效果非常好(另请参阅:如何在Linux/X11下隐藏鼠标指针?).但是,只要光标位于子窗口(例如,JavaScript警报窗口或组合框/ HTML)中,就会出现X光标(如果光标移出窗口,则会再次消失).有谁知道为什么会这样?有没有办法完全隐藏光标?
我想知道如何在视网膜显示器上的webapp中使用自定义光标.我知道通常情况下,由于比例因子,图像将以正常尺寸的两倍显示,并且在使网站与视网膜显示器兼容时,您必须采用2倍比例图像,并设置其浏览器内渲染宽度和高度为实际尺寸的一半.由于游标没有大小属性(据我所知),如何确保以最高保真度呈现光标?
谢谢.
我正在Javafx 8上制作2D射击游戏,我希望能够使光标不可见,以便我可以用十字准线替换它.
反正是否有鼠标光标在场景中不可见?
我正在尝试使用 获取光标数据(掩码和颜色,如果可用)作为字节数组GetDIBits(),具有正确的大小和正确的动画帧,但事实证明它是不可靠的。
另外,我希望获得或能够模拟光标中可用的多个帧,例如使用DrawIconEx()传递cursorStep 参数时可能发生的情况。
基本上,我试图模拟的是 的行为的一部分IDXGIOutputDuplication::GetFramePointerShape(),即获取包含当前光标内容的缓冲区(byte[]),而无需依赖 DirectX 库。
所以,我想要:
byte[],即使掩码工作(已解决)。正如 DXGI 方法在我使用 OutputDuplication 时提供的那样,但就我而言,我没有使用。
TL;DR:我的数据解释错误。
我调用GetDIBits()一次,传递 null 作为缓冲区参数以获取颜色/蒙版图像的详细信息,然后第二次调用以获取图像。
它可以正常处理彩色图像,但返回错误的数据大小和掩模图像的错误图像内容。
这是比较和代码示例。以“2”结尾的文件是通过使用创建的,System.Drawing.Bitmap.FromHBitmap()而其他文件是从 获得的GetDiBits()。
由于某种原因,返回掩码的GetDIBits()此数据 ( )。BitmapInfoHeader此外,仅返回 128 个字节(如果蒙版有两个框架,例如 I-Beam/文本光标,则返回 256 个字节),这对于 32x32px 或 32x64px 蒙版来说太小了。
这是我到目前为止的代码(它是 C#):
WindowDeviceContext = User32.GetWindowDC(IntPtr.Zero);
//The parameter passed in the structs is just to be able to calculate the …Run Code Online (Sandbox Code Playgroud) 我有一个带有一组不可编辑单元格的JTable,我希望特定列中的所有单元格在鼠标悬停在它们上方时显示不同的鼠标光标.我已经在使用自定义渲染器,并且在渲染器组件上设置光标似乎不起作用(就像它对工具提示一样).
它似乎适用于编辑.
当您的单元格未被编辑或我遗漏了什么时,这在JTable中是不可能的吗?
有没有人设法找到Visual Studio 在键入时不隐藏鼠标光标的解决方法?
我在编码时同时使用鼠标和键盘。我必须说这个错误让我发疯,因为它对 Intellisense 有很大的影响,迫使弹出窗口在我输入时闪烁,因为我将鼠标光标放在标识符上。它还会影响第三方工具,例如 Devexpress CodeRush 或我怀疑是 JetBrains ReSharper。
对于像我这样在编码时同时使用鼠标和键盘的人来说,典型的工作模式涉及使用鼠标作为源文件中的快速导航工具。正是因为这个原因,我们经常点击代码中包含标识符的位置。另一方面,光标可能离一个很远,但如果我的输入总是在鼠标光标旁边放置一个标识符,那么智能感知(或第三方工具类似的功能)会再次出现,闪烁我打字;一个非常烦人的效果。
我正在构建一个在远程网站上搜索东西的Python程序.有时操作需要很多秒钟,我相信用户不会注意到状态栏消息"正在搜索操作".因此,我想更改鼠标光标以突出显示程序仍在等待结果.
这是我使用的方法:
def OnButtonSearchClick( self, event ):
"""
If there is text in the search text, launch a SearchOperation.
"""
searched_value = self.m_search_text.GetValue()
if not searched_value:
return
# clean eventual previous results
self.EnableButtons(False)
self.CleanSearchResults()
operations.SearchOperation(self.m_frame, searched_value)
Run Code Online (Sandbox Code Playgroud)
我尝试了两种不同的方法,都在最后一行之前:
他们都没有工作.
我在GNU/Linux下使用KDE.这在Gnome下也不起作用
任何提示?谢谢
我正在开发Mac桌面应用程序,我正在使用它捕获屏幕
CGImageRef screenShot = CGWindowListCreateImage(CGRectInfinite, kCGWindowListOptionAll, kCGNullWindowID, kCGWindowImageDefault);
Run Code Online (Sandbox Code Playgroud)
并显示屏幕截图,问题是,我期待它也应该显示鼠标光标,但它没有显示,我需要启用任何设置吗?
我在调用此函数之前尝试了以下操作
CGDisplayShowCursor(kCGDirectMainDisplay);
CGAssociateMouseAndMouseCursorPosition(true);
Run Code Online (Sandbox Code Playgroud)
但它没有用,当我使用以下检查
bool bCursor = CGCursorIsDrawnInFramebuffer(); /* This returns false */
bCursor = CGCursorIsVisible(); /* This returns true */
Run Code Online (Sandbox Code Playgroud)
这个值说,光标没有在framebuffer()中绘制,但光标是可见的,我想我只需要做的是,在帧缓冲区中绘制光标,但这是怎样的挑战,
提前致谢.
我们基本上是在创建一个控制面板小程序。我们需要在鼠标属性中切换“增强指针精度”。
为此,我们需要SystemParametersInfo调用SPI_GETMOUSE. 它有一个包含 3 个元素的数组作为其第三个参数。我是 PInvoke 的新手,我尝试过很多签名,但到目前为止还没有成功。这是我为签名所做的尝试:
[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SystemParametersInfo(uint uiAction, uint uiParam, [MarshalAs(UnmanagedType.LPArray)] ref long[] vparam, SPIF fWinIni);
static extern bool SystemParametersInfo(uint uiAction, uint uiParam, ref long[] vparam, SPIF fWinIni);
Run Code Online (Sandbox Code Playgroud)
上述方法都不适合我,这是我遇到的异常::
System.AccessViolationException尝试读取或写入受保护的内存。这通常表明其他内存已损坏。
在搜索时我想出了这个用VB编写的。
解决方案:感谢GWLlosa 的回答,我想出了解决方案 :
[DllImport("user32.dll", EntryPoint = "SystemParametersInfo", SetLastError = true)]
public static extern bool SystemParametersInfoGet(uint action, uint param, IntPtr vparam, SPIF fWinIni);
public const UInt32 SPI_GETMOUSE = 0x0003;
[DllImport("user32.dll", …Run Code Online (Sandbox Code Playgroud) mouse-cursor ×10
c# ×2
css ×2
cocoa ×1
gtk ×1
invisible ×1
java ×1
javafx-8 ×1
javascript ×1
jtable ×1
macos ×1
marshalling ×1
objective-c ×1
pinvoke ×1
python ×1
swing ×1
webkit ×1
winapi ×1
wxpython ×1
x11 ×1