Несколько мышь / мышь / курсор? - PullRequest
2 голосов
/ 22 июня 2010

Как я могу показать еще один курсор для нескольких мышей?У меня есть два TMemos, две клавиатуры, которые могут печатать на соответствующих TMemo, 2 мыши, и мне нужны 2 курсора.

Если гипотетически, я уже могу определить, какая мышь является какой.Как я могу сделать свой собственный курсор, чтобы согласиться с ним.(с использованием Delphi) Возможно, в качестве альтернативы Multipoint

, существует ли какое-либо программное обеспечение, которое может отображать более одного курсора.Как и CPNMouse ?

РЕДАКТИРОВАТЬ: я обнаружил, что я могу использовать функцию mouse_event в окнах, но у меня все еще нет визуального представления курсора.

Ответы [ 3 ]

3 голосов
/ 22 июня 2010

Курсоры - это просто ресурсы. Вот хороший список стандартных курсоров , которые можно использовать. 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 будет относиться к обеим мышам одинаково. Для второй мыши вам нужно будет нарисовать курсор мыши вручную.

0 голосов
/ 09 июня 2015

Его действие может быть смоделировано виртуально с исходного курсора, выполняя что-то невероятно быстрое

0 голосов
/ 22 июня 2010

Windows не поддерживает несколько мыши или клавиатуры. Поскольку каждый процесс имеет только одну очередь ввода, Windows обрабатывает все подобные устройства ввода как одно и то же устройство. Это не может быть изменено. Конец истории. Период.

Но даже если вы не можете сделать это в масштабе всей системы - вы все равно можете сделать это в одном конкретном приложении. Вам нужно написать специальный драйвер и установить его только для второй мыши. Этот драйвер не должен передавать движения мыши обычному потребителю (очередь ввода), а скорее перенаправлять ввод непосредственно в ваше приложение.

Вы можете использовать уже написанные драйверы - например, этот или тот, который вы уже упомянули .

...