Compartilhar via


Objetos sInk e tInk

Para ajudar no suporte à tinta em aplicativos, há dois objetos, ambos podem ser inseridos e têm suporte em qualquer contêiner OLE. Eles são produzidos chamando o método Ink.ClipboardCopy (Rectangle, InkClipboardFormats, InkClipboardModes) ou o método Ink.ClipboardCopy (Strokes, InkClipboardFormats, InkClipboardModes) e são:

  • Objeto de tinta de texto (tInk). Este é um objeto OLE que representa a tinta que deve formar palavras. Um objeto tInk permite que a tinta manuscrita seja convertida em texto, como o texto retornado por um reconhecedor ou a escolha obtida de uma lista de alternativas de reconhecimento. A cor e o tamanho da tinta podem ser definidos programaticamente e podem ser baseados nos atributos do texto ao redor do objeto. O objeto tInk destina-se a conter uma única palavra. O objeto tInk é um objeto pequeno e leve que pode executar operações simples como renderização (dado um identificador para um contexto de dispositivo (HDC) e um RECT) e persistir a si mesmo (dado um fluxo). O uso de um objeto tInk permite uma experiência de usuário perfeita ao trabalhar em um aplicativo que usa a entrada de manuscrito e texto.
  • Objeto de tinta de esboço (sInk). Este é um objeto OLE que representa a tinta que não deve formar palavras. Um objeto sInk é interpretado como um desenho. Um objeto sInk também é útil para representar várias palavras.

Esses objetos podem ser usados para interoperabilidade entre aplicativos, colocando-os no slot de objeto OLE na Área de Transferência ou inserindo-os no FORMATO rich text (RTF).

Você pode usar objetos tInk e sInk das seguintes maneiras:

  • Os objetos tInk e sInk têm suporte no Microsoft Word 2002. Os usuários podem inserir tinta em um documento Word usando os painéis de entrada de texto de gravação e desenho fornecidos no Word 2002. Essa tinta é inserida no arquivo Word como um objeto OLE com o CLSID do objeto sInk ou tInk.
  • O controle InkEdit do Tablet PC usa o objeto tInk. O controle InkEdit é uma subclasse do controle RichTextBox padrão. A tinta é inserida no fluxo RTF do controle InkEdit como um objeto tInk.
  • Quando um aplicativo move um objeto Ink selecionado para a Área de Transferência, o slot área de transferência do objeto OLE contém um objeto OLE tInk ou sInk.

Por exemplo, seu aplicativo pode reconhecer a manuscrito e marcar qualquer objeto Ink como um objeto tInk. Em seguida, se você selecionar uma palavra em tinta e copiá-la e colá-la em Word, as alternativas para essa palavra serão mostradas no Word 2002.

Observação

O suporte à Área de Transferência do Tablet PC Platform seleciona automaticamente o sinalizador EMF (Metafile Avançado) para você quando você coloca um objeto sInk ou tInk na Área de Transferência como um objeto OLE. O objeto em si é armazenado na Área de Transferência nos slots de origem de inserção e descritor de objeto.

 

Como outro exemplo, usando o objeto sInk, você pode desenhar um esboço de tinta em um aplicativo, copiar e colar o esboço para Word 2002 e editar o desenho usando o Painel de Entrada do Tablet PC em Word.

Para conter objetos tInk com êxito, um aplicativo deve implementar o suporte de contêiner OLE para objetos inseridos. Em seguida, para tornar o contêiner totalmente compatível com tInk, você deve instituir:

  • Modificações no código para Localizar e Substituir. Em vez de ignorar objetos inseridos na pesquisa, esses objetos devem ser interrogados para o tipo . Se forem um objeto tInk, eles deverão ser instanciados e consultados pelo texto correspondente.
  • Modificações no comportamento de seleção. A seleção de objetos tInk nunca deve aparecer com identificadores de dimensionamento. Eles devem ser selecionados da mesma forma que o texto é selecionado no documento. O código de seleção para objetos deve detectar se o tipo é tInk e exibir a seleção adequadamente.
  • Uso de propriedades de ambiente. As propriedades de ambiente, como tamanho da fonte, cor e formatação em negrito, precisam ser transmitidas para o objeto tInk. A aplicação dessas propriedades altera a largura da tinta manuscrita, portanto, uma atualização de tamanho é necessária chamando o método GetInkExtent ou o método IOleObject::GetExtent .
  • Substitua o processamento padrão do método IOleObject::D oVerb . Isso permite que a conversão em texto passe um lote de objetos tInk para o reconhecedor, o que pode dividir as palavras em segmentos de reconhecimento.

Para obter mais informações sobre como dividir palavras em segmentos de reconhecimento, consulte Segmentos de reconhecimento.