Как узнать название шрифта в диалоговом окне приложения
Для того, чтобы получить информацию о шрифте, используемом в окне или его отдельном элементе, можно применить следующий код.
; Отправить окну запрос на получение информации о шрифте
invoke SendMessage,[hWindow],WM_GETFONT,NULL,NULL
or eax,eax
; Данные о шрифте получить не удалось
jz cant_get_font
; Получить объект с описанием шрифта
invoke GetObject,eax,sizeof.LOGFONT,font
; Теперь в font.lfFaceName строка названия шрифта
Сперва окну посылается сообщение WM_GETFONT, которое возвращает хэндл объекта-описателя шрифта. Если хэндл получить не удалось, то окно использует системный шрифт по умолчанию или не обрабатывает это сообщение. Но это еще не все. Чтобы получить подробное описание со всеми характеристиками шрифта, надо при помощи функции GetObject из полученного хэндла заполнить структуру LOGFONT. Один из параметров этой структуры lfFaceName - строка ASCIIZ с названием шрифта, максимальная длина которой 32 символа. Очень быстро и просто. У меня такой трюк используется в программе WinDowzer.
В приложении пример программы, которая получает информацию о шрифте из окна под курсором и отображает его название в своем окне.
Комментарии:
Нету комментариев для вывода...