Каретка должна отображаться только в окне, которое имеет фокус и активно.Как насчет чего-то вроде:
POINT cp;
GetCaretPos(&cp); // in client coordinates
HWND hActive=GetActiveWindow();
Если вам нужна дополнительная информация (например, о конкретном дочернем окне), вы можете преобразовать точку, возвращенную GetCaretPos()
, в экранные координаты, а затем использовать WindowFromPoint()
для преобразования обратно вопределенный (дочерний) дескриптор окна.