WinAPI: Как установить текущий шрифт для ф-ии GetTextMetrics

Программирование на Visual Basic for Applications
batmax
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 06.08.2004 (Пт) 20:32

WinAPI: Как установить текущий шрифт для ф-ии GetTextMetrics

Сообщение batmax » 03.08.2006 (Чт) 9:41

Пишу макрос на VBA.
В справочнике написано, что эта ф-ия возвращает параметры выбранного текущего шрифта. Вопрос: как его выбрать, этот текущий шрифт, если мне известно его имя в системе (например, Arial Bold) ?
Кстати, тут есть тонкости: есть файл arial.ttf и есть arialbd.ttf, а в системе почему-то только шрифт Arial, который (с точки зрения юзера) может стать Bold. Не подскажете ли заодно, как узнать, есть ли у данного шрифта MySuperFancyFonty (это, допустим, такое у него имя в списке доступных шрифтов, каким его видит юзер, а НЕ имя ttf-файла) версии Bold и Italic ?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 03.08.2006 (Чт) 9:50

Функция GetTextMetrics принимает параметр hDC и работает именно с текущим шрифтом в этом DC, а не с неким "глобально текущим шрифтом".

Один из способов узнать, есть ли у шрифта жирный вариант -- взять обычный и жирный логические шрифты, и сравнить для них результат GetFontData. Эта функция берёт данные из реального TTF-файла.
Изображение

batmax
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 06.08.2004 (Пт) 20:32

Сообщение batmax » 03.08.2006 (Чт) 10:34

А как HDC нормальный из VBA получить, ведь объекта Screen, как в VB, нет, да и нет там HDC, кажется.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 03.08.2006 (Чт) 10:55

Как у всех: CreateCompatibleDC(0)
Изображение


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 57

    TopList