Можно ли надежно получить координаты x, y курсора I-beam? Например, при редактировании текста или вводе некоторых команд в оболочку положение мыши и двутавровый курсор могут иметь разные координаты. Хотя получить положение мыши на экране очень просто, я не встречал никакой документации о том, как получить положение курсора двутавровой балки на экране.

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

0
kenn 8 Янв 2022 в 14:28

1 ответ

Если вы имеете в виду, когда курсор мыши имеет форму «двутавровой балки», это просто положение курсора мыши. Если вы имеете в виду то место в текстовом фрагменте, где текст будет редактироваться, то нет, потому что искомого понятия не существует.

Концепция положения текстового курсора полностью зависит от приложения. Операционная система отслеживает, где находится курсор мыши, и рисует его на экране, но каждое приложение может отображать текстовые курсоры там, где оно хочет.

Приложение может иметь несколько текстовых курсоров (например, по одному в каждом подокне, панели или текстовом поле, или следовать за различными частями текста, которые изменяются параллельно) или вообще не иметь. Как правило, они не имеют четко определенной позиции на экране: их цель — указать позицию в тексте, и они могут располагаться на экране между символами или над ними.

Если вам нужно решить конкретную проблему в конкретном приложении (или в группе приложений, использующих одну и ту же библиотеку виджетов графического интерфейса), для этого может быть решение.

1
Gilles 'SO- stop being evil' 7 Янв 2022 в 20:23
«Операционная система отслеживает, где находится курсор мыши, и рисует его на экране». Это не X-сервер?
 – 
Quasímodo
7 Янв 2022 в 22:06
Да (или альтернатива, такая как Wayland или Quartz).
 – 
Gilles 'SO- stop being evil'
7 Янв 2022 в 22:26