C# 窗体外部的鼠标光标 我有一个旧的颜色选择器工具,C++编写,我编码了几年,想用C.重写

C# 窗体外部的鼠标光标 我有一个旧的颜色选择器工具,C++编写,我编码了几年,想用C.重写,c#,cursor,mouse,hook,C#,Cursor,Mouse,Hook,我实现了全局钩子来从屏幕上拾取像素等等。一切都很好,但是 一旦鼠标移到窗体外部和桌面上,十字光标将恢复为指针。这并不是我的C++代码MFC实际发生的。 这在c语言中是如何实现的 谢谢大家 我将其用于钩子解决方案或解决方法是模拟鼠标单击事件的第一部分。这将在调用窗口上锁定鼠标,从而保留所选光标 [DllImport( "user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall )] publ

我实现了全局钩子来从屏幕上拾取像素等等。一切都很好,但是

一旦鼠标移到窗体外部和桌面上,十字光标将恢复为指针。这并不是我的C++代码MFC实际发生的。 这在c语言中是如何实现的

谢谢大家


我将其用于钩子

解决方案或解决方法是模拟鼠标单击事件的第一部分。这将在调用窗口上锁定鼠标,从而保留所选光标

[DllImport( "user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall )]
public static extern void mouse_event( uint dwFlags, uint dx, uint dy, uint cButtons, uint dwExtraInfo );

private const int   MOUSEEVENTF_LEFTDOWN    = 0x02;
private const int   MOUSEEVENTF_LEFTUP      = 0x04;
private const int   MOUSEEVENTF_RIGHTDOWN   = 0x08;
private const int   MOUSEEVENTF_RIGHTUP     = 0x10;
然后在代码中启用鼠标捕获后:

mouse_event(
    MOUSEEVENTF_LEFTDOWN,
    (uint)Cursor.Position.X,
    (uint)Cursor.Position.Y,
    0,
    0 );

this.Cursor = Cursors.Cross;

希望有帮助。

同样的问题。捕获工作正常,但当鼠标移到窗体外部和桌面上时,十字光标将恢复为默认光标。