如何为多个鼠标显示另一个光标? 我有两个TMemos,两个键盘可以输入各自的TMemo,2个鼠标,我需要2个游标。
如果假设,我已经可以检测出哪个鼠标是哪个。如何使自己的光标与它一起使用。 (使用Delphi) 可能沿着Multipoint
的路线作为替代方案,是否有任何软件可以渲染更多的光标。喜欢CPNMouse?
编辑: 我发现我可以在windows中使用mouse_event函数,但我仍然没有光标的可视化表示。
答案 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 one或the one, that you've already mentioned。
答案 2 :(得分:0)
可以通过快速接缝来虚拟地从原始光标模拟其动作