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.
Poniżej przedstawiono opcje wyświetlania i powiązanego przetwarzania tekstu w celu obsługi drobnych efektów typografii lub złożonych skryptów:
- Funkcje tekstowe
- Edytowanie kontrolek
- Zaawansowane kontrolki edycji
- Uniscribe
Wybrane opcje zależą od następujących czynników:
- Typ tekstu lub skryptów.
- Model implementacji, na przykład układ tekstu i obsługa podziału wierszy przez aplikację.
- Aktualizacja istniejącej aplikacji w porównaniu z tworzeniem nowej aplikacji.
Ogólnie rzecz biorąc, aplikacja, która wykonuje stosunkowo proste przetwarzanie skryptów, może wybrać dowolną opcję przetwarzania złożonych skryptów. Jednak w przypadku najbardziej kompletnej kontroli złożonego przetwarzania skryptów zaleca się stosowanie polecenia Uniscribe.
Złożone przetwarzanie skryptów przy użyciu funkcji tekstowych
Aplikacje używające głównie zwykłego tekstu, czyli tekstu używającego tego samego kroju pisma, grubości, koloru itd., tradycyjnie pisały tekst i mierzyły długości wierszy przy użyciu standardowych funkcji tekstowych, takich jak TextOut, ExtTextOut, TabbedTextOut, DrawTexti GetTextExtentExPoint. Te funkcje obsługują przetwarzanie złożonych skryptów i drobnych efektów typografii. Aby uzyskać więcej informacji, zobacz Font and Text.
Ogólnie rzecz biorąc, standardowa obsługa tekstu jest przezroczysta dla aplikacji przetwarzających złożone skrypty. Należy jednak pamiętać o pewnych konkretnych regułach, które należy przestrzegać podczas pisania aplikacji obsługujących drobną typografię i przetwarzanie złożonych skryptów:
- Aplikacja powinna zapisywać znaki w buforze i wyświetlać cały wiersz tekstu na raz, zamiast wywoływać ExtTextOut dla każdego znaku, gdy jest on wpisywany przez użytkownika. Ten mechanizm umożliwia zaawansowanym modułom kształtowania tekstu używanie kontekstu do zmieniania kolejności i poprawnego generowania glifów.
- Aplikacja powinna używać GetTextExtentExPoint w celu określenia długości wiersza zamiast obliczania długości wierszy z buforowanych szerokości znaków, ponieważ szerokość glifów może się różnić w zależności od kontekstu.
- Aplikacja powinna opcjonalnie dodawać obsługę kolejności odczytu od prawej do lewej oraz wyrównania do prawej strony.
- Zmiana kolejności i przetwarzanie kontekstowe wymagane dla złożonych skryptów lub typografii precyzyjnej wymaga znacznego zwiększenia przetwarzania w przypadku podstawowego wyświetlania tekstu w przypadku prostych skryptów. W związku z tym, aby uniknąć problemów z wydajnością, aplikacja nie powinna przetwarzać dużych ilości tekstu przed wyświetleniem wyników i zwróceniem kontroli do użytkownika.
Złożone przetwarzanie skryptów przy użyciu kontrolek edycji
Standardowe kontrolki edycji systemu Windows zostały rozszerzone w celu obsługi wielojęzycznych skryptów tekstowych i złożonych. Rozszerzona obsługa obejmuje wprowadzanie i wyświetlanie, a także poprawne przenoszenie kursora w klastrach znaków, na przykład w skryptach tajskich i devanagari. Aby uzyskać więcej informacji, zobacz Elementy sterujące edycją.
Złożone przetwarzanie skryptów przy użyciu kontrolek Rich Edit
Funkcja Rich Edit 3.0 to kolekcja interfejsów wyższego poziomu, która korzysta z funkcji Uniscribe w celu odizolowania aplikacji układu tekstu od złożoności niektórych skryptów. Rich Edit to najprostszy sposób, aby aplikacje wyświetlały złożone skrypty, chociaż ich głównym celem nie jest układ tekstu. Rich Edit zapewnia szybkie i wszechstronne edytowanie bogatego tekstu wielojęzycznego Unicode oraz prostego tekstu zwykłego. Obejmuje rozbudowane interfejsy komunikatów i COM, edytowanie tekstu, formatowanie, podział wierszy, prosty układ tabeli, układ tekstu pionowego, dwukierunkowy układ tekstu, obsługę języka indyjskiego i tajskiego, interfejs użytkownika do edytowania bardzo podobny do Microsoft Word oraz interfejsy Text Object Model.
Oprócz interfejsów Rich Edit, aplikacje mogą używać funkcji Rich Edit TextOut, aby automatycznie analizować, kształtować, pozycjonować i dzielić wiersze. Aby uzyskać więcej informacji, zobacz kontrolki edycji wzbogaconej.
Złożone przetwarzanie skryptów przy użyciu Uniscribe
uniscribe zapewnia najszerszą obsługę przetwarzania tekstu obejmującego efekty typografii precyzyjnej i złożone skrypty. Obsługuje złożone reguły znalezione w skryptach, takich jak arabski, Devanagari i Tajski. Obsługuje skrypty napisane od prawej do lewej, takie jak arabski i hebrajski, i obsługuje mieszanie skryptów. Uniscribe uwidacznia również funkcje czcionek OpenType, które mogą być używane przez aplikacje do kontrolowania drobnych efektów typografii. Aby uzyskać więcej informacji, zobacz Przetwarzanie złożonych skryptów.
Tematy pokrewne