Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 12.12.2012
Сообщений: 42
1

Размер шрифта

03.08.2015, 15:24. Показов 1124. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть окно состоящее из двух WC_EDIT (hEdit1 и hEdit2), в них выводится одинаковый текст, а затем задается размер шрифта след. образом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
HDC hDC=GetDC(hEdit1);
int nHeight = -MulDiv(12, GetDeviceCaps(hDC, LOGPIXELSY), 72);
 
HFONT hFont1 = CreateFont(-nHeight,0,0,0,FW_DONTCARE,FALSE,FALSE,FALSE,DEFAULT_CHARSET,OUT_OUTLINE_PRECIS,CLIP_DEFAULT_PRECIS,CLEARTYPE_QUALITY, VARIABLE_PITCH,TEXT("Arial"));
SendMessage(hEdit1,WM_SETFONT,(WPARAM)hFont1,TRUE);
HFONT hFont2 = CreateFont(nHeight,0,0,0,FW_DONTCARE,FALSE,FALSE,FALSE,DEFAULT_CHARSET,OUT_OUTLINE_PRECIS,CLIP_DEFAULT_PRECIS,CLEARTYPE_QUALITY, VARIABLE_PITCH,TEXT("Arial"));
SendMessage(hEdit2,WM_SETFONT,(WPARAM)hFont2,TRUE);
 
TEXTMETRIC tm;
SelectObject(hDC,hFont1);
GetTextMetrics(hDC,&tm);
ReleaseDC(hEdit1,hDC);
string inf=to_string(tm.tmHeight)+"  "+to_string(tm.tmAscent)+"  "+to_string(tm.tmDescent)+"  "+to_string(tm.tmInternalLeading)+"  "+to_string(tm.tmExternalLeading);
 
hDC=GetDC(hEdit2);
SelectObject(hDC,hFont2);
GetTextMetrics(hDC,&tm);
inf+="\n" + to_string(tm.tmHeight)+"  "+to_string(tm.tmAscent)+"  "+to_string(tm.tmDescent)+"  "+to_string(tm.tmInternalLeading)+"  "+to_string(tm.tmExternalLeading);
MessageBox(hwnd,inf.data(),"Info!",MB_OK);
ReleaseDC(hEdit2,hDC);
Затем я делаю снимок экрана и увеличиваю его, чтоб были видны отдельные пиксели. Результат во вложении. Самый крайний столбик чередующихся пикселей не является выводом программы, а сделан для того, чтоб было удобно считать.

Вопрос заключается вот в чем: почему во втором поле internalLeading выводится равным 2, хотя на изображении видно, что он равен трем?
Миниатюры
Размер шрифта   Размер шрифта  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.08.2015, 15:24
Ответы с готовыми решениями:

Как менять размер шрифта?
Как менять размер шрифта?

Изменить размер шрифта консоли в win7
Добрый день! Необходимо изменить размер шрифта консоли Windows 7. Пробовал разными способами,...

Размер шрифта, как узнать ширину одной буковки (символа)?
Всем здрасьте. При создании шрифта везде только один параметр (int size ..ну или другой тип..),...

Окно класса static, заливка фона, размер, стиль и цвет шрифта
Добрый вечер! LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wparam, LPARAM lparam) {...

0
03.08.2015, 15:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.08.2015, 15:24
Помогаю со студенческими работами здесь

Сделать размер шрифта приложения инвариантным по отношению к системным настройкам размера шрифта
чтобы размер шрифта был фиксирован и постоянен, вне зависимости от настроек. очень нужно.

Размер шрифта, размер контролов
Почему когда делаю TextView.setTextSize(14); на одном устройстве показывает нормально, а на другом...

Размер шрифта
Вот столкнулся с такой проблемкой,известно что при изменении размера шрифта в системе,размер шрифта...

размер шрифта
Дорогие профи и любители. Мой вопрос таков. Я новичек, я не понимаю, чем мне нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru