Интерфейс графических устройств, страница 6

ется для внесения в список имен доступных   шрифтов   TrueType. Когда пользователь   выбирает   пункт   меню Test!, в приложении используется функция   EnumFontFamilies для выборки структуры   LOGFONT, соответствующей шрифту. Затем в приложении с помощью функции CreateFontlndirect создается шрифт, и отображается пример вывода с использованием созданного шрифта.

См.    \local-sources\chapl2\12-07.txt

Синтаксис обратного вызова

int CALLBACK EnumFontFamExProc( ENUMLOGFONTEX* Ipelfe, NEWTEXTMETRICEX* Ipntme, DWORD FontType, LPARAM IParam )

Параметры обратного вызова

Ipelfe

ENUMLOGFONTEX*. Указатель на структуру ENUMLOGFONTEX, которая содержит информацию о логических атрибутах шрифта. Определение структуры ENUMLOGFONTEX приведено ниже.

Ipntme

NEWTEXTMETRICEX*. Указатель на структуру NEWTEXTMETRICEX, которая содержит информацию о физических атрибутах шрифта. В Windows 98 структура NEWTEXTMETRICEX не реализована; вместо нее применяется NEWTEXTMETRIC. Определение структуры NEWTEXTMETRICEX приведено ниже. Определение структуры NEWTEXTMETRIC приведено в описании функции EnumFontFamilies ранее в этой главе.

FontType

DWORD. Тип шрифта. В качестве этого параметра может применяться комбинация DEVICE_FONTTYPE, RASTER_FONTTYPE иTRUETYPE_FONTTYPE. Для определения того, какие типы шрифтов установлены в системе, применяется двоичный оператор AND (&).

IParam

LPARAM. Данные, определяемые приложением, передаваемые функции EnumFontFamiliesEx.

Возвращаемое значение обратного вызова int. Для продолжения перечисления должно быть возвращено значение, отличное от нуля; для прекращения перечисления возвращаемое значение должно быть равно 0.

Определение ENUMLOGFONTEXtypedef struct tagENUMLOGFONTEX{ LOGFONT    elfLogFont; TCHAR         elfFullName[LF_FOLLFACESIZE]; TCHAR         elfStyle[LF_FACESIZE] ; TCHAR         elf Script [LF_FACESIZE] ; }   ENUMLOGFONTEX;

Члены

elfLogFont

LOGFONT. Дополнительная информация приведена в описании функции CreateFontlndirect.

elfFullName

TCHAR. Строка с нулевым символом в конце, содержащая полное имя шрифта.

elfStyle

TCHAR. Строка с нулевым символом в конце, содержащая начертание шрифта, например "Bold", "Italic" и т.д.

elfScript

TCHAR. Строка с нулевым символом в конце, которая указывает языковую принадлежность шрифта, например "Cyrillic".

Определение NEWTEXTMETRICEXtypedef struct tagNEWTEXTMETRICEX< NEWTEXTMETRIC    ntmentm; FONTSIGNATURE    ntmeFontSignature; }   NEWTEXTMETRICEX;

Члены ntmentm

NEWTEXTMETRIC. Определение приведено в описании функции EnumFontFamilies.

ntmeFontSignature

FONTSIGNATURE. Определение приведено ниже.

Определение FONTSIGNATUREtypedef struct tagFONTSIGNATURE { DWORD fsUsb[4] ; DWORD fsCsb[2] ; }

Члены

fsUsb

DWORD[4]. 128-разрядное битовое поле подмножества уникода (USB — Unicode subset bitfield), которое обозначает до 126 поддиапазонов уникода. Каждый бит, за исключением двух старших значащих битов, представляет отдельный поддиапазон. Первый старший значащий бит всегда равен 1 и обозначает битовое поле как сигнатуру шрифта; второй старший значащий бит зарезервирован и должен быть равен 0. Поддиапазоны уникода пронумерованы в соответствии со стандартом ISO 10646.

fsCsb

DWORD[2]. 64-разрядное битовое поле кодовой страницы (СРВ — code-page bitfield), которое обозначает конкретный набор символов или кодовую страницу. Кодовые страницы Windows находятся в 32 младших битах этого битового поля; 32 старших бита используются для кодовых страниц, отличных от Windows.

Пример

Следующий пример аналогичен приведенному для функции EnumFontFamilies, за исключением того, что для перебора доступных шрифтов применяется функция EnumFontFamiliesEx. В этом примере показан только код инициализации, который позволяет узнать, как инициализировать структуру LOGFONT и использовать ее с этой функцией.

См.    \local-aources\chapl2\12-08. txt

GetDC                                     •  Windows 98   • Windows 2000

Описание

Функция GetDC выбирает дескриптор контекста устройства отображения (DC) для клиентской области окна. Контекст устройства отображения можно в дальнейшем использовать в функциях GDI для рисования в клиентской области окна. В зависимости от стиля класса окна функция GetDC выбирает общий, принадлежащий классу или приватный контекст устройства. При выборке общего контекста устройства ему присваиваются атрибуты, предусмотренные по умолчанию. Атрибуты, принадлежащие контексту устройства класса и приватному контексту устройства, остаются неизменными. После того как приложение прекращает использовать контекст устройства, его необходимо освободить с помощью функции ReleaseDC. Это требование не является обязательным для контекста устройства класса или приватного контекста устройства.

Синтаксис

HOC GetDC( HWND hWnd )

Параметры

hWnd

HWND. Окно, для которого должен быть получен контекст устройства.