purebasic.info

PureBasic forum
Текущее время: Пт июл 20, 2018 1:49 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Шрифты
СообщениеДобавлено: Чт мар 31, 2011 9:35 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6324
Благодарил (а): 19 раз.
Поблагодарили: 189 раз.
Пункты репутации: 48
Работа со шрифтами и всё что с этим связано.
Будет пополнятся по мере накопления материала.
- Ширина шрифта
-Создание шрифта и применение его к контролу
-Установка шрифта в систему
-Удаление шрифта из системы

_________________
read-only


Последний раз редактировалось kvitaliy Пт апр 01, 2011 3:25 pm, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Размер шрифта в пикселях
СообщениеДобавлено: Чт мар 31, 2011 9:41 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6324
Благодарил (а): 19 раз.
Поблагодарили: 189 раз.
Пункты репутации: 48
В структуре SIZE будет размер шрифта в пикселах. Если надо ширину всей строки, вместо еденички поставь Len(GetGadgetText(#String_1))
Так можно получить размер шрифта любого контрола.

Код:
1
2
3
4
5
6
hDC = GetDC_(GadgetID(#String_1)) 
hFont = SendMessage_(GadgetID(#String_1),#WM_GETFONT,0,0)
If hFont And hDC
   SelectObject_(hDC,hFont)
EndIf
GetTextExtentPoint32_(hDC, GetGadgetText(#String_1), 1, lpSize.SIZE)


_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт апр 01, 2011 3:26 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6324
Благодарил (а): 19 раз.
Поблагодарили: 189 раз.
Пункты репутации: 48
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
;===========  Создание шрифта и применение его к контролу  ==========================
;Функция CreateFont создает логический шрифт с заданными характеристиками. Логический шрифт может впоследствии быть выбран как шрифт для любого устройства
; HFONT CreateFont(
;   int nHeight,               ; высота шрифта
;   int nWidth,                ; средняя ширина символа
;   int nEscapement,           ; угол наклона
;   int nOrientation,          ; угол ориентации базисной линии
;   int fnWeight,              ; толщина шрифта. Устанавливает толщину шрифта в диапазоне от 0 до 1000
;   DWORD fdwItalic,           ; описатель параметра курсивного шрифта
;   DWORD fdwUnderline,        ; описатель параметра подчеркивания
;   DWORD fdwStrikeOut,        ; описатель параметра зачеркивания
;   DWORD fdwCharSet,          ; идентификатор набора символов
;   DWORD fdwOutputPrecision,  ; точность вывода
;   DWORD fdwClipPrecision,    ; точность отсечения
;   DWORD fdwQuality,          ; качество вывода
;   DWORD fdwPitchAndFamily,   ; шаг между символами шрифта и семейство
;   LPCTSTR lpszFace           ; имя гарнитуры шрифта
; );
hFont = CreateFont_(-30,15,25,10,1000,1,0,0,#DEFAULT_CHARSET,#OUT_DEFAULT_PRECIS,#CLIP_DEFAULT_PRECIS,#ANTIALIASED_QUALITY,#DEFAULT_PITCH Or #FF_DONTCARE,"Courier New")
If hFont
    SendMessage_(GadgetID(#Gadget), #WM_SETFONT, Font, 0 )     ; применяем к гаджету
EndIf


_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт апр 01, 2011 3:27 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6324
Благодарил (а): 19 раз.
Поблагодарили: 189 раз.
Пункты репутации: 48
Код:
1
2
3
4
5
6
7
8
9
;===========  Установка шрифта в систему  =============================================
;Функция AddFontResource добавляет шрифт из файла в таблицу системного шрифта.
; int AddFontResource(
;    LPCTSTR lpszFilename           ; имя файла шрифта (полный путь)
; );
  i = AddFontResource_("C:\Fonts\myfont.ttf")
   If i
      SendMessage_(#HWND_BROADCAST, #WM_FONTCHANGE, 0, 0)        ;сообщяем о шрифте системе
   EndIf


_________________
read-only


Последний раз редактировалось kvitaliy Пт апр 01, 2011 9:15 pm, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт апр 01, 2011 3:27 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6324
Благодарил (а): 19 раз.
Поблагодарили: 189 раз.
Пункты репутации: 48
Код:
1
2
3
4
5
6
7
8
;===========  Удаление шрифта из системы  =============================================
;Функция RemoveFontResource удаляет шрифты в заданном файле из таблицы системного шрифта.
; BOOL RemoveFontResource(
;   LPCTSTR lpFileName   ; имя файла со шрифтом
; )
  If RemoveFontResource_("C:\Fonts\myfont.ttf") <> 0
      SendMessage_(#HWND_BROADCAST, #WM_FONTCHANGE, 0, 0)         ; сообщяем системе
  EndIf  


_________________
read-only


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB