Найти положение экрана каретки в окнах CE.(эквивалентно GetGUIThreadInfo?) - PullRequest
0 голосов
/ 24 ноября 2010

Я создаю пользовательскую софт-панель ввода и хотел бы найти позицию каретки.Затем я мог бы убрать SIP, если он закрывает позицию, где вводится текст.

Похоже, что в Windows способ сделать это был бы с GetGUIThreadInfo ().Однако, похоже, что API не поддерживается в Windows CE (в частности, CE 6.0 R3).

Есть ли альтернативный метод поиска этой же информации?Способ определения активного окна и где текст будет введен на нем?

Спасибо!

1 Ответ

0 голосов
/ 04 февраля 2011

Каретка должна отображаться только в окне, которое имеет фокус и активно.Как насчет чего-то вроде:

POINT cp;
GetCaretPos(&cp); // in client coordinates
HWND hActive=GetActiveWindow();

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

...