标签: mouse-cursor

如何在.NET应用程序中使用自定义鼠标Cursor?

好吧,正如标题所说,我如何设置图像或其他任何东西作为鼠标光标.我知道你可以使用属于Cursors类的内置类,但我想知道是否有办法使用你自己的图像(最好没有P/Invoke,但两种方式都可以.)

编辑:我想我没有清楚地解释我想要的东西.我没有任何.cur文件(它们是否易于创建?),我想知道是否有办法从磁盘(或任何地方)获取图像并将其用作光标.我想要的Ultimatley会做这样的事情:

myForm.Cursor = new Cursor(Image.FromFile("foo.jpg"));
Run Code Online (Sandbox Code Playgroud)

可能?

.net c# mouse-cursor

6
推荐指数
1
解决办法
1万
查看次数

如何在鼠标光标周围绘制突出显示

我希望能够在鼠标光标周围显示快速的动画“闪光”(类似于某些屏幕录制应用程序中的效果)。解决这个问题的好方法是什么?

我当前的想法是在鼠标位置下显示一个临时的、浮动的、透明的窗口窗口,为其设置动画,然后隐藏它。但我想知道是否有更好的建议?

macos cocoa objective-c mouse-cursor

6
推荐指数
1
解决办法
1013
查看次数

如何确定当前鼠标光标是否已设置动画?

有没有办法如何确定当前鼠标光标是否动画?

我正在寻找一种如何在前一段时间保存当前光标的方法.我发现DrawIconEx功能非常适合我的目的.不幸的是,我不知道如何确定当前光标是否已设置动画.我希望如果我在静态游标的情况下将istepIfAniCur参数设置为1,则DrawIconEx返回False,但它实际上忽略了该参数并返回True,不允许我在循环中使用它来获取静态游标以及来自的所有帧动画片.如果是动画,则按预期工作,因此当您使用istepIfAniCur超出范围时,它将返回False.

那我怎么知道HICON(HCURSOR)是动画光标呢?DrawIconEx如何确定光标是动画的?

非常感谢

c++ delphi winapi animated mouse-cursor

6
推荐指数
1
解决办法
1240
查看次数

切换 增强指针精度

我们基本上是在创建一个控制面板小程序。我们需要在鼠标属性中切换“增强指针精度”。
为此,我们需要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)

c# pinvoke marshalling mouse-cursor

6
推荐指数
1
解决办法
1721
查看次数

不使用WinForms旋转光标

可以旋转FrameworkElement.Cursor吗?

我的应用程序允许用户围绕其中心旋转对象.旋转后,默认调整大小的光标在倾斜边框上显得很笨拙.

鼠标光标不受变换影响

我的第一个想法是应用于RotateTransformCursor属性,但看起来我们不能在XAML中这样做.接下来我尝试从Cursor类继承,但它看起来像MS家伙拥有sealed它.

另一种方法是将默认光标设置为None并使用我自己的图像(使用变换)并设置其位置MouseMove.如果有更容易的选择,我不愿意走这条路.谁有好的建议?

如果可能的话,我正在寻找一个仅支持WPF的解决方案.

c# wpf xaml mouse-cursor

6
推荐指数
1
解决办法
851
查看次数

在 Opera 中使用 jquery 为元素分配动态光标样式

我试图在鼠标悬停在元素上时动态更改光标样式。光标应该是“移动”或“默认”,具体取决于方法返回的布尔值。代码是这样的:

$("#elemId").mousemove(function(event) {
    if(cursorShouldBeMove()) {
        $(this).css({'cursor':'move'});
    } else {
        $(this).css({'cursor':'default'});
    }
}
Run Code Online (Sandbox Code Playgroud)

这段代码在 IE8、FF3、Chrome 和 Safari 中就像一个魅力。只有 Opera 未能正确处理它。

我使用的是 Opera 9.6.4

有谁知道如何解决这个问题?


我准备了样品进行测试;

var cursorStatus = true;
setInterval(function() { cursorStatus = !cursorStatus; }, 500);

function cursorShouldBeMove() {
  return cursorStatus;
}

$(function() {
  $("#elemId").mousemove(
    function(event) {
      $(this).css("cursor", cursorShouldBeMove() ? "move" : "default");
    }
  );
});
Run Code Online (Sandbox Code Playgroud)

如果将鼠标从 #elemId 外部移动到内部几次,您将看到光标会发生变化。但是,如果您将鼠标放置在 #elemId 中并移动鼠标,光标不会改变。

代码非常简单。我认为这是 Opera 的一个错误。

我还测试了这段代码;

  • 火狐 3.5.1(有效)
  • Internet Explorer 7(有效)
  • 谷歌浏览器 2.0(有效)
  • Safari 3.2(有效)

(Windows 版本)

javascript css jquery opera mouse-cursor

5
推荐指数
1
解决办法
3482
查看次数

使用 Windows.Forms.Cursor 作为 WPF 光标?

我有一个 System.Windows.Forms.Cursor ,想将其分配给 WPF 的 image.Cursor 属性,该属性恰好是 System.Windows.Input.Cursor 类型。这里的约束是,前一个 Cursor 类型是由我们的框架返回的,我无法修改它。有什么方法可以将前者转换为后者吗?

wpf casting mouse-cursor

5
推荐指数
1
解决办法
1716
查看次数

XLib:获取光标图像

有没有办法使用 Xlib 检索当前光标位图?我已经检查过XCursor man,但我没有看到任何可以做到这一点的方法。

c++ linux x11 mouse-cursor

5
推荐指数
1
解决办法
1430
查看次数

SetCursor 在鼠标移动/单击之前不起作用(Win32 Api)

在处理 WM_SETCURSOR Windows 消息时,我对某个光标调用 SetCursor 。如果我将光标设置为与实际不同的内容,它会等到鼠标通过移动或单击获得输入来实际设置它。

有没有办法解决这个问题,以便在光标接受输入之前光标不会在视觉上看起来错误?

case WM_SETCURSOR:
    {
        SetCursor( game->GetCursor() ); // Returns m_curCurrent
        return true;
    }
    break;
Run Code Online (Sandbox Code Playgroud)

当我想要改变光标类型时,我还设置了它。

游戏初始化期间:

m_curDefault        = LoadCursor( m_hInstance, MAKEINTRESOURCE( IDC_DEFAULT_CURSOR ));
m_curAttack         = LoadCursor( m_hInstance, MAKEINTRESOURCE( IDC_ATTACK_CURSOR ));
m_curMove           = LoadCursor( m_hInstance, MAKEINTRESOURCE( IDC_MOVE_CURSOR ));
m_curCurrent        = m_curDefault;
Run Code Online (Sandbox Code Playgroud)

设置光标类型时

void Game::SetCursorType( CursorTypes curType )
{
switch ( curType )
{
case CGame::DefaultCursor:
    m_curCurrent = m_curDefault;
    break;
case CGame::AttackCursor:
    m_curCurrent = m_curAttack;
    break;
case CGame::MoveCursor:
    m_curCurrent = m_curMove;
    break;
default:
    break;
}

}
Run Code Online (Sandbox Code Playgroud)

c++ winapi windows-messages mouse-cursor

5
推荐指数
1
解决办法
3393
查看次数

当鼠标悬停在框的边框上时如何获得“调整大小”类型的光标?

我正在尝试将光标属性从 更改为:default:se-resize鼠标悬停在框的边框上。有什么办法可以在 CSS 中做到这一点吗?我只需要CSS 中的选项!

HTML:

<textarea placeholder="..."></textarea>   
Run Code Online (Sandbox Code Playgroud)

CSS:

textarea {
width: 510px;
height: 140px;
padding: 5px 0;
border:2px solid #dddddd;
outline-style:none;
color: #777777;
Run Code Online (Sandbox Code Playgroud)

}

css mouse-cursor

5
推荐指数
1
解决办法
2853
查看次数