Включаемый файл wingdi.h См. также GetCharWidth32 Определение ABC typedef struct ABC{ int abcA; UINT abcB ; int abcC; } ABC; |
||||||||
Члены |
||||||||
abcA |
int. Интервал А символа. Это — расстояние, которое должно быть добавлено к текущей позиции перед выводом глифа символа. |
|||||||
abcB |
UINT. Интервал В символа. Это — ширина выведенной части глифа символа. |
|||||||
abcC |
int. Интервал С символа. Это — расстояние, которое должно быть добавлено к текущей позиции для создания пробельного промежутка справа от глифа символа. |
|||||||
Пример |
В следующем примере, показанном на рис. 14.3, отображается ширина |
|||||||
символов W и X, когда пользователь выбирает пункт меню Test!. Значение ширины этих символов определяются из данных шрифта "Times New Roman", который создается и выбирается для контекста устройства главного окна. |
||||||||
СМ. \loctl-sources\chapl4\14-06.txt |
||||||||
GetCharABCWidthsFloat « Windows 98 • Windows 2000 |
||||||||
Описание |
Функция GetCharABCWidthsFloat позволяет определить ширину последовательных символов из текущего шрифта в указанном диапазоне (в логических единицах длины). В отличие от функции GetCharABCWidths, настоящая функция может применяться с любым шрифтом. |
|||||||
Синтаксис |
BOOL GetCharABCWidthsFloat( HDC hDC, UINT uFirstChar, UINT uLastChar, LPABCFLOAT Ipabc ) |
|||||||
Параметры |
||||||||
HDC |
HDC. Контекст устройства. |
|||||||
uFirstChar |
UINT. Первый символ в диапазоне символов текущего шрифта. |
|||||||
nLastChar |
UINT. Последний символ в диапазоне символов текущего шрифта. |
|||||||
Ipabc |
LPABCFLOAT. Указатель на массив структур ABCFLOAT, который принимает значения ширины символов при возвращении из функции. Определение структуры ABCFLOAT приведено ниже. |
|||||||
Возвращаемое значение |
BOOL. В случае успешного выполнения возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE. |
|||||||
Включаемый файл |
wingdi.h |
|||||||
См. также GetCharWidthFloat Определение ABCFLOATtypedef struct ABCFLOAT { FLOAT abcA; FLOAT abcB; FLOAT abcC; } ABC; |
||||||||
Члены |
||||||||
abcA |
FLOAT. Интервал А символа. Это — расстояние, которое должно быть добавлено к текущей позиции перед выводом глифа символа. |
|||||||
abcB |
FLOAT. Интервал В символа. Это — ширина выведенной части глифа символа. |
|||||||
abcC |
FLOAT. Интервал С символа. Это — расстояние, которое должно быть добавлено к текущей позиции для создания пробельного промежутка справа от глифа символа. |
|||||||
GetCharABCWidthsl • Windows 98 • Windows 2000 |
||||||||
Описание |
Функция GetCharABCWidthsl позволяет определить ширину последовательных индексов глифов текущего шрифта TrueType в указанном диапазоне (в логических единицах длины). |
|||||||
Синтаксис |
BOOL GetCharABCWidthsI( HDC hDC, UINT giFirst, UINT cgi, LPWORD pgi, LPABC Ipabc ) |
|||||||
Параметры |
||||||||
hDC |
HDC. Контекст устройства. |
|||||||
gifirst |
UINT. Первый индекс глифа в группе последовательных индексов глифов текущего шрифта. Этот параметр применяется, только если параметр pgi равен -NULL. |
|||||||
cgi |
UINT. Число индексов глифов. |
|||||||
Pgi |
LPWORD. Указатель на массив, который содержит индексы глифов. Если этот параметр равен NULL, вместо него используется параметр gifirst. Параметр cgi указывает число индексов глифов в этом массиве. |
|||||||
Ipabc |
LPABC. Указатель на массив структур ABC, который принимает значения ширины символов. Этот массив должен содержать, по меньшей мере, столько структур ABC, сколько имеется индексов глифов, указанных параметром cgi. |
|||||||
Возвращаемое значение |
BOOL В случае успешного выполнения, возвращаемое значение — TRUE; в ином случае возвращаемое значение — FALSE. |
|||||||
Включаемый файл |
wingdi.h |
|||||||
См. также |
GetCharWidth |
|||||||
GetCharacterPlacement • Windows 98 • Windows 2000 |
||||||||
Описание |
Функция GetCharacterPlacement позволяет получить информацию о том, как отображается в контексте устройства символьная строка, например значение ширины символов, позицию знака вставки, упорядочение внутристроки и представление глифов. Эта функция обеспечивает правильную обработку текста в приложении, независимо от региональных установок и типов доступных шрифтов. Эту функцию следует использовать перед вызовом функции ExtTextOut и вместо функции GetTextExtentPoint32. Для нелатинских шрифтов можно повысить скорость вывода текста функцией ExtTextOut в приложении, вызывая функцию GetCharacterPlacement перед вызовом ExtTextOut при повторном выводе одного и того же текста или при использовании межсимвольного интервала для размещения знака вставки |
|||||||
Синтаксис |
DWORD GetCharacterPIacement( HDC hDC, LPCSTR IpString, int nCount, int nMaxExtent, GCP_RESULTS IpResults, DWORD dwflags ) |
|||||||
Параметры |
||||||||
hDC |
HDC. Контекст устройства, на котором должен быть выведен текст. |
|||||||
IpString |
LPCSTR Указатель на символьную строку, которая должна быть обработана. |
|||||||
п Count |
int. Число символов в строке, указанной параметром IpString. |
|||||||
nMaxExtent |
int. Максимальный экстент (ширина) выходной строки. Этот параметр применяется, только в тех случаях, когда в параметре dwFlags указано значение GCP_MAXEXTENT или GCP_JUSTIFY. |
|||||||
IpResults |
GCP_RESULTS. Указатель на структуру GCP_RESULTS, которая принимает результаты выполнения функции. Определение структуры GCP_RESULTS приведено ниже. |
|||||||
dwFlags |
DWORD. Указывает, как преобразовать строку в нужные массивы. Этот параметр может иметь одно из значений, перечисленных в табл. 14.20. |
|||||||
Таблица 14.20. Значения параметра dwFlags функции GetCharacterPlacement |
||||||||
Значение |
Описание |
|||||||
GCP_CLASSIN |
Массив IpClass после ввода содержит промежуточные результаты классификации символов. Все допустимые ненулевые значения остаются неизменными, а для других входов массива функция GetCharacterPlacement устанавливает соответствующие классификационные значения. |
|||||||
GCP_DIACRmC |
Позволяет определить обработку диакритических знаков в строке. Если это значение не установлено, диакритические знаки рассматриваются как символы нулевой ширины. |
|||||||
GCP_IMSPLAYZWG |
Для языков, которые требуют переупорядочения или применения разных форм глифов в зависимости от позиций символов внутри слова, в кодовой странице часто появляются неотображаемые символы. |
|||||||
GCP_GLYPHSHAPE |
Отображать символы с использованием нестандартных форм. |
|||||||
GCP_JUSnFY |
Дополнять экстенты в массиве IpDx так, чтобы длина строки была равна значению, указанному параметром nMaxExtent. Этот флажок должен применяться вместе с флажком GCP_MAXEXTENT. |
|||||||
GCP_JUSTIFYIN |
Массив IpDx после ввода содержит веса выравнивания. Вес выравнивания для неарабских шрифтов может иметь значение 0 или 1 , где 1 указывает, что для выравнивания ширина символа может увеличиваться. Для арабских шрифтов вес выравнивания может находиться в диапазоне от 0 до 8. |
|||||||
GCP_KASHIDA |
Для изменения длины строки таким образом, чтобы она была равна значению, указанному параметром nMaxExtent, использовать кашиды (протяжки, применяемые в арабском письме) вместо дополнений. Кашида обозначается отрицательным индексом выравнивания в массиве IpDx. Этот флажок должен использоваться вместе с флажком GCP_JUSTIFY, и только при том условии, что шрифт (и язык) поддерживает кашиды. |
|||||||
GCPJ.IGATE |
Использовать лигатуры для символов, которые могут быть соединены в лигатуру. Если для этого набора символов требуется флажок GCP_REORDER, но он не установлен, вывод будет бессмысленным. |
|||||||
GCP_MAXEXTENT |
Усекать результирующую выходную строку (в случае необходимости) так, чтобы результирующий экстент, в логических единицах длины, не превышал значения, указанного параметром nMaxExtent. |
|||||||
GCP_NEUTRALOVERRIDE |
Отменить обычную обработку нейтральных символов и рассматривать их как сильные символы, которые соответствуют порядку чтения строк. |
|||||||
GCP_NUMERICOVERRIDE |
Отменить обычную обработку цифровых символов и рассматривать их как сильные символы, которые соответствуют порядку чтения строк. |
|||||||
GCP_NUMERICSLATIN |
Использовать для цифр стандартные арабские глифы и отменить значения, применяемые в системе по умолчанию. |
|||||||
GCP_NUMERICSLOCAL |
Использовать для цифр глифы, предусмотренные региональными установками, и отменить значения, применяемые в системе по умолчанию. |
|||||||
GCP_NODIACRITICS |
Игнорировать все диакритические знаки в строке. При таком значении параметра диакритические знаки будут также удалены из результирующей выходной строки. |
|||||||
GCPJJEORDER |
Переупорядочить строку. Обычно используется для шрифтов, которые не принадлежат к однобайтовым наборам символов (SBCS — single-byte character set) и не предусматривают порядка чтения слева направо. Если этот флажок не установлен, предполагается, что строка приведена в порядке отображения. |
|||||||
GCP_SYMSWAPOFF |
Указывает, что переставляемые символы не переустановлены. |
|||||||
GCP_USEKERNING |
Использовать в шрифте пары, допускающие регулирование межсимвольного просвета (апроша). |
|||||||
Возвращаемое значение |
DWORD. В случае успешного выполнения возвращаемое значение аналогично значению, возвращаемому функцией GetTextExtentPoint32; в ином случае возвращаемое значение — нуль. |
|||||||
Включаемый файл |
wingdi.h |
|||||||
См. также |
ExtTextOut, GetTextExtentPoint32 |
|||||||
Определение GCP_RESULTStypedef struct tagGCP RESULTS { DWORD IStructSize; LPTSTR IpOutString; UINT* IpOrder; |
||||||||
INT* IpDx ; INT* IpCaretPos ; LPTSTR IpClass ; LPWSTR IpGlyphs ; UINT nGlyphs ; int nMaxFit; } GCPJUESULTS ; |
||||||||
Члены |
||||||||
IStructSize |
DWORD. Размер структуры в байтах. |
|||||||
IpOutString |
LPTSTR. Адрес буфера, который принимает выходную строку. Устанавливается равным NULL, если выходная строка не требуется. |
|||||||
IpOrder |
UINT*. Адрес массива, который принимает индексы упорядочения для символов в выходной строке. Устанавливается равным NULL, если упорядочение индексов не требуется. Первоначальная строка требует переупорядочения, если функция GetFontLanguagelnfo возвращает значение GCP_REORDER. |
|||||||
IpDx |
INT*. Адрес массива, который принимает значения расстояний между смежными символьными ячейками. Устанавливается равным NULL, если эти расстояния не требуются. Если выполнено преобразование в глифы, то эти расстояния относятся к глифам, а не к символам, поэтому результирующий массив может использоваться в функции ExtTextOut. Если установлен флажок GCP_JUSTIFYIN, после ввода этот член должен содержать значения весов выравнивания. Расстояния в этом массиве указаны в порядке отображения. Чтобы найти расстояние для i'-го символа в первоначальной строке, можно использовать массив IpOrder следующим образом: width = 1рОх[ Ip0rder[i] ] |
|||||||
IfCantPaa |
INT*. Адрес массива, который принимает значения позиции знака вставки. Устанавливается равным NULL, если позиции знака вставки определять не требуется. Этот массив соответствует первоначальной строке, а не выходной строке, а это значит, что некоторые смежные значения могут быть одинаковыми. |
|||||||
If&m |
LPTSTR Адрес массива, который содержит и/или принимает данные классификации символов. Классификационные значения, наиболее удобные для нелатинских систем, зависят от языка и набора символов шрифта, выбранного для контекста устройства. Каждый элемент массива может быть установлен в значение 0 или в одно из значений, приведенных в табл. 14.21. |
|||||||
IpGlyphs |
LPWSTR. Адрес массива, который принимает значения, обозначающие глифы, используемые для представления строки. Устанавливается равным NULL, если представление строки в виде глифов не требуется. В этом массиве может быть меньше глифов, чем символов в первоначальной строке, если массив содержит глифы, соединенные в лигатуру. Если требуется переупорядочение, глифы могут не быть последовательными. Этот массив может использоваться в функции ExtTextOut. |
|||||||
nGlyphs |
UINT. Число значений в массивах IpGlyph и IpDx. После ввода этот член должен быть установлен равным размерам массивов, указанных членами IpGlyph и IpDx. |
|||||||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.