使用Windows拖动复制光标

tmi*_*hty 1 .net c# winforms

我可以这样设置光标:

Me.Cursor = Cursors.Cross
Run Code Online (Sandbox Code Playgroud)

使用IntelliSense,我找不到此“复制”光标:

复制光标

有什么办法可以通过托管的方式获得它吗?我不想加载位图左右。我想把它留给Windows,因为用户可能已经更改了光标大小或设置了不同的颜色模式。

Rez*_*aei 6

拖放游标属于ole32.dll。您可以从该库中加载它们。要做到这一点,你需要加载ole32.dll使用LoadLibrary,然后用LoadCursor得到这些光标的句柄。您可以使用1到7作为LoadCursor参数来从中获取光标ole32.dll。您要查找的光标是36

在此处输入图片说明

[DllImport("kernel32.dll")]
public static extern IntPtr LoadLibrary(string dllToLoad);

[DllImport("user32.dll")]
public static extern IntPtr LoadCursor(IntPtr hInstance, UInt16 lpCursorName);

private void button1_Click(object sender, EventArgs e)
{
    var l = LoadLibrary("ole32.dll");
    var h = LoadCursor(l, 6);
    this.Cursor = new Cursor(h);
}
Run Code Online (Sandbox Code Playgroud)