多个鼠标/鼠标/光标?

时间:2010-06-22 02:26:19

标签: windows delphi mouse cursor

如何为多个鼠标显示另一个光标? 我有两个TMemos,两个键盘可以输入各自的TMemo,2个鼠标,我需要2个游标。

如果假设,我已经可以检测出哪个鼠标是哪个。如何使自己的光标与它一起使用。 (使用Delphi) 可能沿着Multipoint

的路线

作为替代方案,是否有任何软件可以渲染更多的光标。喜欢CPNMouse

编辑: 我发现我可以在windows中使用mouse_event函数,但我仍然没有光标的可视化表示。

3 个答案:

答案 0 :(得分:3)

游标只是资源。以下是可以使用的standard cursors的良好列表。 TControl定义一个游标属性,该属性可以设置为在给定控件上应该使用的游标。您还可以使用Screen.Cursor来控制整个应用程序光标。

要定义自定义光标,请使用以下代码。

{$R MyCustomCursors.RES}

const
 crCustom1 = 1;
 crCustom2 = 2; 

...

  Screen.Cursors[crCustom1] := LoadCursor(hInstance, 'CUSTOM1');
  Screen.Cursors[crCustom2] := LoadCursor(hInstance, 'CUSTOM2');

...

默认情况下,Delphi不是为处理多个鼠标指针而设计的,但我怀疑大多数环境都没有。您提到的SDK是我在单个应用程序中同时使用多个鼠标时看到的唯一信息来源。然而它只是.NET,所以使用它需要Delphi Prism。

如果您想为多个鼠标滚动自己的支持,可以使用相同的使用WM_INPUT的技巧。 Windows将两个鼠标视为相同。您必须手动为第二只鼠标自定义绘制鼠标光标。

答案 1 :(得分:0)

Windows不支持多个鼠标或键盘。由于每个进程只有1个输入队列,因此Windows将所有类似的输入设备视为同一个设备。这不能改变。故事结局。周期。

但即使你不能在系统范围内做到这一点 - 你仍然可以在一个特定的应用程序中这样做。您需要编写一个特殊的驱动程序并仅为第二个鼠标安装它。此驱动程序不应将鼠标移动传递给普通使用者(输入队列),而应将输入直接重定向到您的应用程序。

您可以使用已编写的驱动程序 - 例如this onethe one, that you've already mentioned

答案 2 :(得分:0)

可以通过快速接缝来虚拟地从原始光标模拟其动作