2010-07-23 13 views
0

J'utilise ITextRange à partir d'un contrôle RichEdit. Je veux déterminer si le curseur d'un utilisateur touche un mot.ITextRange de RichEdit: Détermine si le curseur d'un utilisateur est dans un mot?

Le problème est que l'appel iTextRange.expand(tomWord) comprendra des espaces de résidus miniers:

Les parenthèses indiquent la gamme:

Before: 

     weas[]el . 

After: 

     [weasel ]. 

Mon plan initial était d'élargir la gamme, et vérifier si elle contenait le curseur. Mais le curseur de l'utilisateur pourrait être de deux espaces après "weasel", et la gamme s'étendra toujours pour le contenir. Alors, que puis-je faire d'autre?

Répondre

1

Je peux me rappeler faire face à un problème similaire: c'est-à-dire comment sélectionner un mot sans sélectionner d'espace de fin. Je pense que ce type de code C++

textRange->StartOf(tomWord,tomMove,NULL); 
textRange->MoveEnd(tomWord,1,NULL); 

devrait vous donner le bon choix, de sorte que vous pouvez tester si le caret est dans la sélection.