Übersetzen von Maustreffer X Offset in Caret-Position

Üblicherweise kann der Benutzer die Caretposition (cp) auswählen, indem er entweder auf die nachfolgende Hälfte des Zeichens "cp-1" oder auf die führende Hälfte des Zeichens "cp" klickt. Eine Anwendung kann die Übersetzung von Maustreffer x Offset in Caretposition wie folgt implementieren:

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

Bei Skripts, die das Caret an Clustergrenzen ausrichten, wird ein Aufruf von ScriptXtoCP zurückgegeben, wobei fTrailing entweder auf 0 oder die Breite des Clusters in Codepunkten festgelegt ist.

Verwenden von Uniscribe