EnumFontFamiliesEx

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
oksale
Обычный пользователь
Обычный пользователь
 
Сообщения: 55
Зарегистрирован: 27.08.2002 (Вт) 12:27

EnumFontFamiliesEx

Сообщение oksale » 17.10.2003 (Пт) 20:44

Я вывожу весь список шрифтов(только название шрифта, т.е. lfFaceName) в ListBox:

Dim LF As LOGFONT
LF.lfCharSet = DEFAULT_CHARSET
EnumFontFamiliesEx Me.hdc, LF, AddressOf EnumFontFamProcEx, ByVal 0&, 0

При клике по ListBoxу должна выводиться информация о каждом шрифте(Charset, Bold и т.д.):

Private Sub List_Click()
Dim LF As LOGFONT

LF.lfCharSet = DEFAULT_CHARSET
LF.lfFaceName = Trim(CStr(lstTT.List(lstTT.ListIndex)))
LF.lfPitchAndFamily = 0
EnumFontFamiliesEx Me.hdc, LF, AddressOf EnumFontFamProc, 0, 0

....
End sub


Но при клике по листбоксу не вызывается callback - процедура EnumFontFamProc. Ошибка не возникает, просто курсор идет дальше при пошаговом выполнении. Подскажите, в чем дело?

И еще вопрос: можно ли при помощи этой функции вытащить незарегистрированные в системе шрифты, а , к примеру, те, которые физически находятся на каком-нибудь диске?

kamikadze
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 16.10.2005 (Вс) 18:36

Сообщение kamikadze » 16.10.2005 (Вс) 18:55

Я в этом не разбираюсь. Но все таки попробуй
Dim LF As LOGFONT
записать в общих обьявлениях переменных.

А так как у тебя ты просто создаешь переменную, заполняешь ее, а потом обнуляешь повторным обьявлением. :)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.10.2005 (Вс) 21:35

Повторного объявления здесь нет.


А если не пошагово, срабатывает?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

oksale
Обычный пользователь
Обычный пользователь
 
Сообщения: 55
Зарегистрирован: 27.08.2002 (Вт) 12:27

Сообщение oksale » 17.10.2005 (Пн) 8:17

Посмотрите на дату создания сообщения. :lol:
Спасибо большое за ответы, но тема уже давно не актуальна.


Вернуться в Visual Basic 1–6

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

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

    TopList