objets sInk et tInk
Pour faciliter la prise en charge de l’entrée manuscrite dans les applications, il existe deux objets, qui peuvent tous deux être incorporés et sont pris en charge par n’importe quel conteneur OLE. Ils sont produits en appelant la méthode Ink.ClipboardCopy (Rectangle, InkClipboardFormats, InkClipboardModes) ou la méthode Ink.ClipboardCopy (Strokes, InkClipboardFormats, InkClipboardModes) et sont :
- Objet d’encre de texte (tInk). Il s’agit d’un objet OLE représentant l’entrée manuscrite qui doit former des mots. Un objet tInk permet de convertir l’entrée manuscrite en texte, soit comme texte retourné par un module de reconnaissance, soit comme le choix pris dans une liste d’alternatives de reconnaissance. La couleur et la taille de l’encre peuvent être définies par programmation et peuvent être basées sur les attributs du texte autour de l’objet. L’objet tInk est destiné à contenir un seul mot. L’objet tInk est un petit objet léger qui peut effectuer des opérations simples telles que le rendu (avec un handle dans un contexte d’appareil (HDC) et un RECT) et la persistance de lui-même (en fonction d’un flux). L’utilisation d’un objet tInk permet une expérience utilisateur transparente lors de l’utilisation d’une application qui utilise à la fois l’écriture manuscrite et le texte.
- Objet d’encre de croquis (sInk). Il s’agit d’un objet OLE représentant l’entrée manuscrite qui n’est pas censée former des mots. Un objet sInk est interprété comme un dessin. Un objet sInk est également utile pour représenter plusieurs mots.
Ces objets peuvent être utilisés pour l’interopérabilité entre les applications, soit en les plaçant dans l’emplacement d’objet OLE du Presse-papiers, soit en les incorporant au format RTF (Rich Text Format).
Vous pouvez utiliser des objets tInk et sInk des manières suivantes :
- Les objets tInk et sInk sont pris en charge dans Microsoft Word 2002. Les utilisateurs peuvent insérer de l’encre dans un document Word à l’aide des panneaux d’entrée de texte d’écriture et de dessin fournis dans Word 2002. Cette entrée manuscrite est incorporée dans le fichier Word en tant qu’objet OLE avec le CLSID de l’objet sInk ou tInk.
- Le contrôle InkEdit Tablet PC utilise l’objet tInk. Le contrôle InkEdit est une sous-classe du contrôle RichTextBox standard. L’encre manuscrite est insérée dans le flux RTF du contrôle InkEdit en tant qu’objet tInk.
- Lorsqu’une application déplace un objet Ink sélectionné dans le Presse-papiers, l’emplacement de l’objet OLE Presse-papiers contient un objet OLE tInk ou sInk OLE.
Par exemple, votre application peut reconnaître l’écriture manuscrite et marquer n’importe quel objet Ink en tant qu’objet tInk. Ensuite, si vous sélectionnez un mot à l’entrée manuscrite et que vous le copiez et le collez dans Word, les alternatives pour ce mot sont affichées dans Word 2002.
Notes
La prise en charge du Presse-papiers de la plateforme Tablet PC sélectionne automatiquement l’indicateur EMF (Enhanced Metafile) pour vous lorsque vous placez un objet sInk ou tInk dans le Presse-papiers en tant qu’objet OLE. L’objet lui-même est stocké dans le Presse-papiers dans les emplacements de descripteur source et d’objet incorporés.
Par exemple, à l’aide de l’objet sInk, vous pouvez dessiner un croquis manuscrit dans une application, copier et coller l’esquisse dans Word 2002, puis modifier le dessin à l’aide du panneau d’entrée Tablet PC dans Word.
Pour contenir correctement les objets tInk, une application doit implémenter la prise en charge du conteneur OLE pour les objets incorporés. Ensuite, pour que le conteneur prend entièrement en charge tInk, vous devez mettre en place :
- Modifications apportées au code pour Rechercher et remplacer. Au lieu d’ignorer les objets incorporés dans la recherche, ces objets doivent être interrogés pour le type. S’il s’agit d’un objet tInk, ils doivent être instanciés et interrogés pour leur texte correspondant.
- Modifications apportées au comportement de sélection. La sélection d’objets tInk ne doit jamais apparaître avec des poignées de dimensionnement. Ils doivent être sélectionnés de la même manière que le texte est sélectionné dans le document. Le code de sélection des objets doit détecter si le type est tInk et afficher la sélection de manière appropriée.
- Utilisation de propriétés ambiantes. Les propriétés ambiantes telles que la taille de police, la couleur et la mise en gras doivent être transmises à l’objet tInk. L’application de ces propriétés modifie la largeur de l’encre manuscrite, de sorte qu’une mise à jour de taille est requise en appelant la méthode GetInkExtent ou la méthode IOleObject::GetExtent .
- Remplacez le traitement par défaut de la méthode IOleObject::D oVerb . Cela permet à la conversion en texte de passer un lot d’objets tInk au module de reconnaissance, qui peut ensuite diviser les mots en segments de reconnaissance.
Pour plus d’informations sur la segmentation de mots en segments de reconnaissance, consultez Segments de reconnaissance.