Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby ułatwić obsługę pisma odręcznego w aplikacjach, istnieją dwa obiekty, z których oba mogą być osadzone i obsługiwane przez dowolny kontener OLE. Są one tworzone przez wywołanie metody Ink.ClipboardCopy (Rectangle, InkClipboardFormats, InkClipboardModes) lub metody ink.ClipboardCopy (Strokes, InkClipboardFormats, InkClipboardModes) i są:
- Obiekt pisma odręcznego (tInk). Jest to obiekt OLE reprezentujący atrament, który ma tworzyć wyrazy. Obiekt tInk umożliwia konwertowanie pisma odręcznego na tekst jako tekst zwracany przez rozpoznawanie lub wybór pobrany z listy alternatywnych funkcji rozpoznawania. Kolor i rozmiar pisma odręcznego można ustawić programowo i może być oparty na atrybutach tekstu wokół obiektu. Obiekt tInk ma zawierać jedno słowo. Obiekt tInk jest małym, lekkim obiektem, który może wykonywać proste operacje, takie jak renderowanie (biorąc pod uwagę uchwyt kontekstu urządzenia (HDC) i RECT) i utrwalanie się (na podstawie strumienia). Korzystanie z obiektu tInk umożliwia bezproblemowe środowisko użytkownika podczas pracy w aplikacji, która używa danych wejściowych zarówno pisma ręcznego, jak i tekstu.
- Obiekt pisma odręcznego szkicu (sInk). Jest to obiekt OLE reprezentujący atrament, który nie powinien tworzyć wyrazów. Obiekt sInk jest interpretowany jako rysunek. Obiekt sInk jest również przydatny do reprezentowania wielu wyrazów.
Te obiekty mogą służyć do współdziałania między aplikacjami, umieszczając je w miejscu obiektu OLE w Schowku lub osadzając je w formacie RTF (Rich Text Format).
Obiekty tInk i sInk można używać w następujący sposób:
- Obiekty tInk i sInk są obsługiwane w programie Microsoft Word 2002. Użytkownicy mogą wstawiać pismo odwłoczne do dokumentu programu Word przy użyciu paneli wprowadzania tekstu i pisania tekstu w programie Word 2002. Ten atrament jest osadzony w pliku programu Word jako obiekt OLE z identyfikatorem CLSID obiektu sInk lub tInk.
- Tablet PC InkEdit kontrolki korzysta z obiektu tInk. Kontrolka InkEdit jest podklasą standardowej kontrolki RichTextBox. Atrament jest wstawiany do strumienia RTF kontrolki InkEdit jako obiekt tInk.
- Gdy aplikacja przenosi wybrany obiekt atramentu do Schowka, schowek obiektu OLE zawiera obiekt tInk lub sInk OLE.
Na przykład aplikacja może rozpoznać pismo ręczne i oznaczyć dowolny obiekt ink jako obiekt tInk. Następnie, jeśli wybierzesz wyraz w atramentu i skopiuj i wklej go do programu Word, alternatywy dla tego wyrazu są wyświetlane w programie Word 2002.
Nuta
Obsługa schowka platformy tabletu pc automatycznie wybiera flagę Enhanced Metafile (EMF) podczas umieszczania obiektu sInk lub tInk w Schowku jako obiektu OLE. Sam obiekt jest przechowywany w Schowku w gniazdach deskryptora źródła osadzania i obiektu.
W innym przykładzie, używając obiektu sInk, można narysować szkic pisma odręcznego w aplikacji, skopiować i wkleić szkic do programu Word 2002, a następnie edytować rysunek przy użyciu panelu wprowadzania tabletu PC w programie Word.
Aby pomyślnie zawierać obiekty tInk, aplikacja musi zaimplementować obsługę kontenera OLE dla obiektów osadzonych. Następnie, aby kontener w pełni obsługiwał rozwiązanie tInk, należy wprowadzić następujące elementy:
- Modyfikacje kodu funkcji Znajdź i Zastąp. Zamiast pomijać obiekty osadzone w wyszukiwaniu, te obiekty muszą być przesłuchiwane pod kątem typu. Jeśli są obiektem tInk, muszą być tworzone wystąpienia i wykonywać zapytania dotyczące odpowiedniego tekstu.
- Modyfikacje zachowania wyboru. Wybór obiektów tInk nigdy nie powinien być wyświetlany z uchwytami ustalania rozmiaru. Powinny być zaznaczone w taki sam sposób, w jaki tekst jest zaznaczony w dokumencie. Kod wyboru dla obiektów musi wykryć, czy typ to tInk i odpowiednio wyświetlić zaznaczenie.
- Korzystanie z właściwości otoczenia. Właściwości otoczenia, takie jak rozmiar czcionki, kolor i formatowanie pogrubione, muszą być przesyłane do obiektu tInk. Zastosowanie tych właściwości zmienia szerokość pisma odręcznego, dlatego wymagana jest aktualizacja rozmiaru przez wywołanie metody GetInkExtent lub IOleObject::GetExtent metody.
- Zastąpij domyślne przetwarzanie metody IOleObject::D oVerb. Dzięki temu konwersja na tekst umożliwia przekazanie partii obiektów tInk do rozpoznawania, co może następnie podzielić wyrazy na segmenty rozpoznawania.
Aby uzyskać więcej informacji na temat podziału wyrazów na segmenty rozpoznawania, zobacz Recognition Segments.