Преобразование попадания указателя мыши по оси X в позицию курсора

Как правило, пользователь может выбрать позицию каретки (cp), щелкнув на заднюю половину символа "cp-1" или на переднюю половину символа "cp". Приложение может реализовать преобразование смещения x при клике мыши в позицию курсора следующим образом:

int iCharPos;
int iCaretPos;
int fTrailing;
ScriptXtoCP(iMouseX, cChars, cGlyphs, pwLogClust, psva, piAdvance, psa,
            &iCharPos, &fTrailing);
iCaretPos = iCharPos + fTrailing;

Для скриптов, которые привязывают курсор к границам кластера, вызов ScriptXtoCP возвращается с параметром fTrailing, который может быть равен либо 0, либо ширине кластера в кодовых точках.

Использование Унискрайб