Szerokości znaków
Aplikacje muszą pobierać dane o szerokości znaków podczas wykonywania takich zadań jak dopasowywanie ciągów tekstu do szerokości strony lub kolumny. Istnieją cztery funkcje, których aplikacja może używać do pobierania danych o szerokości znaków. Dwie z tych funkcji pobierają szerokość z wyprzedzeniem znaków, a dwie z tych funkcji pobierają rzeczywiste dane o szerokości znaków.
Aplikacja może używać funkcji GetCharWidth32 i GetCharWidthFloat, aby pobrać szerokość zaliczki dla poszczególnych znaków lub symboli w ciągu tekstu. Szerokość zaliczki to odległość, z jaką kursor na wyświetlaczu wideo lub na drukarce musi przejść przed wydrukowaniem następnego znaku w ciągu tekstu. Funkcja GetCharWidth32 zwraca szerokość z wyprzedzeniem jako wartość całkowitą. Jeśli wymagana jest większa precyzja, aplikacja może użyć funkcji GetCharWidthFloat w celu pobrania wartości z wyprzedzeniem ułamkowym.
Aplikacja może pobierać rzeczywiste dane o szerokości znaków przy użyciu funkcji GetCharABCWidths i GetCharABCWidthsFloat. Funkcja GetCharABCWidthsFloat działa ze wszystkimi czcionkami. Funkcja GetCharABCWidths działa tylko z czcionkami TrueType i OpenType. Aby uzyskać więcej informacji na temat czcionek TrueType i OpenType, zobacz Raster, Vector, TrueType i OpenType Fonts.
Na poniższej ilustracji przedstawiono trzy składniki szerokości znaku:
Odstęp a to szerokość, która ma zostać dodana do bieżącej pozycji przed umieszczeniem znaku. Odstępy B to szerokość samego znaku. Odstęp między C jest białym znakiem po prawej stronie znaku. Łączna szerokość zaliczki jest określana przez obliczenie sumy A+B+C. Komórka znaku jest wyimaginowanym prostokątem, który otacza każdy znak lub symbol czcionki. Ponieważ znaki mogą zwisać lub zwisać w komórce znaków, albo oba przyrosty A i C mogą być liczbą ujemną.