purebasic.info

PureBasic forum
Текущее время: Вс апр 22, 2018 4:15 am

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




Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
СообщениеДобавлено: Пн авг 24, 2015 10:21 pm 
Не в сети
ассистент

Зарегистрирован: Чт авг 20, 2015 5:20 pm
Сообщений: 12
Откуда: CCCP
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Пётр писал(а):
Изменил код выше. Теперь без WinAPI.


Спасибо большое! Благ тебе!
Пытаюсь разобраться, кручу-верчу.

Пётр писал(а):
Шрифт по умолчанию формирует более крупные, "жирные" символы.

По крайнему короткому коду, я понял так, что это относится к винапи? Потому как первая строка с простым TextGadget у меня привычным тонким шрифтом, вторая более крупным и толстым.
Тогда не понимаю, почему ПБ использует правильный тонкий-мелкий шрифт, но при запросе размеров шрифта считает от другого, более крупного и толстого? Это Фред накосячил, получается? Ведь перед TextGadget никаких указаний на изменение шрифта нет, следовательно шрифт дефолтный, тогда и TextWidth/Height должны отталкиваться от дефолтного... Какая-то ерунда выходит.

_________________


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пн авг 24, 2015 10:23 pm 
Не в сети
PureBasic Coder
Аватар пользователя

Зарегистрирован: Чт ноя 10, 2011 10:50 am
Сообщений: 4049
Откуда: Ростов-на-Дону
Благодарил (а): 70 раз.
Поблагодарили: 80 раз.
Пункты репутации: 24
TextGadget использует стандартный шрифт системы. А вот стандартный шрифт для рисования пурик берет какой-то левый (как сказал Петр, полужирный какой-то)
Изображение

_________________
Пурик - лучший язык программирования


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пн авг 24, 2015 10:29 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11108
Благодарил (а): 4 раз.
Поблагодарили: 395 раз.
Никита Однороб писал(а):
А вот стандартный шрифт для рисования пурик берет какой-то левый
Он не левый. Этот шрифт используется системой если явно не задан какой-либо шрифт. Пример выше с CreateWindowEx это показывает.
Если в контроле созданном с помощью CreateWindowEx изменить шрифт на по умолчанию для окон, то он станет привычным.
Код:
1
2
3
4
5
6
7
8
9
10
11
12
Enumeration
  #Str_1
EndEnumeration
 
If OpenWindow(0, 0, 0, 400, 400, "Text pixel size detection",  #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_TitleBar )
  TextGadget(#Str_1, 8, 8, 192, 13, "0123456789")
 
  h=CreateWindowEx_(0, "Static", "0123456789 ", #WS_CHILD|#WS_VISIBLE, 8, 30, 192, 16, WindowID(0), 0, 0, 0)
  SendMessage_(h, #WM_SETFONT, GetStockObject_(#DEFAULT_GUI_FONT), 0)
 
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf



destiny писал(а):
Ведь перед TextGadget никаких указаний на изменение шрифта нет, следовательно шрифт дефолтный.
Не совсем так. Шрифт задается внутри функции TextGadget. Там есть что-то типа.
Код:
1
SendMessage_(hWnd, #WM_SETFONT, GetStockObject_(#DEFAULT_GUI_FONT), 0)


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


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пн авг 24, 2015 11:24 pm 
Не в сети
ассистент

Зарегистрирован: Чт авг 20, 2015 5:20 pm
Сообщений: 12
Откуда: CCCP
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Вот теперь наконец-то внесена полная ясность. Для одного используется один шрифт, для другого - другой, и нигде это не указано, и выяснить кроме как опытным путем - нельзя. И Пётр этот опыт давно получил и в курсе, а теперь со всеми нами этим поделился!
БлагоДарю!

_________________


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу Пред.  1, 2, 3

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


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

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


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

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