如何为多个鼠标显示另一个光标?我有两个TMemos,两个键盘,可以输入他们各自的TMemo,2个鼠标,我需要2个光标。
假设,我已经可以检测出哪个鼠标是哪个鼠标了。我怎样才能使我自己的光标与之匹配呢?(使用Delphi)可能与Multipoint类似
作为另一种选择,是否有任何软件可以渲染多个光标。像CPNMouse一样
编辑:我发现我可以在窗口中使用mouse_event函数,但我仍然没有光标的可视化表示。
发布于 2010-06-22 11:41:33
游标就是资源。下面是可以使用的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会将两个鼠标视为相同的。对于第二个鼠标,您必须手动对鼠标光标进行自定义绘制。
发布于 2010-06-22 16:23:43
Windows不支持多个鼠标或键盘。由于每个进程只有一个输入队列,因此Windows将所有类似的输入设备视为相同的单个设备。这是无法更改的。故事到此结束。句号。
但是,即使你不能在系统范围内做到这一点-你仍然可以在一个特定的应用程序中做到这一点。您需要编写一个特殊的驱动程序,并只为第二个鼠标安装它。此驱动程序不应将鼠标移动传递给通常的使用者(输入队列),而应将输入直接重定向到您的应用程序。
您可以使用已编写的驱动程序-例如,this one或the one, that you've already mentioned。
发布于 2015-06-09 22:02:46
它可以通过无缝快速地执行某些操作来虚拟地从原始光标模拟其操作
https://stackoverflow.com/questions/3089851
复制相似问题