Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
1

Как посчитать длину текса в пикселях?

02.02.2015, 14:54. Показов 4043. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть свой статик контрол, в нём текст можно создавать с различными шрифтами, нужно зарание посчитать длину и высоту текста исходя из извесного размера шрифта и самого шрифта, подскажите как это можно сделать?

Добавлено через 41 минуту
пРОБОВАЛ так

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SIZE sz;
    HDC hdc;
 
    hdc = GetDC(NULL);
    HDC memHDC = CreateCompatibleDC(hdc);
 
    HFONT hfont = CreateFont (22, 0, FW_DONTCARE, FW_DONTCARE, FW_DONTCARE,
        FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS,
        CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FF_DONTCARE, L"Blackoak Std");
    HFONT oldFont = (HFONT)SelectObject(memHDC,hfont);
 
    GetTextExtentPoint32W(memHDC,temp[0].c_str(),temp[maxIt].length(),&sz);
    SelectObject(memHDC,oldFont);
    DeleteObject(hfont);
    ReleaseDC(NULL,hdc);
    DeleteDC(memHDC);
ширину считает неправильно, если шрифт обычный то норм, если какой-то нестандартный то ничего не выходит
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.02.2015, 14:54
Ответы с готовыми решениями:

Как узнать длину строки в пикселях?
Я там внизу спрашивала как узнать длину строки в пикселях. У меня строка есть и шрифт я знаю каким хочу ее печатать. Мне надо поточнее ее...

Как получить длину строки пикселях (поинтах)
Есть строка(переменная) , известен шрифт как получить её длину в экранных единицах (Pixel, point)?

Как узнать ширину и длину картинки в пикселях?
Нужно просто узнать ширину и длину картинки "macu.jpg" в пикселях. Заранее спасибо.

10
Программист
 Аватар для prZzZ
119 / 97 / 11
Регистрация: 22.03.2011
Сообщений: 244
02.02.2015, 19:21 2
mh-coder, здравствуйте. GetTextMetrics вам в помощь.
0
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
02.02.2015, 21:19  [ТС] 3
Цитата Сообщение от prZzZ Посмотреть сообщение
mh-coder, здравствуйте. GetTextMetrics вам в помощь.
а как ею пользоватся? я так пониамаю мне нужно заполнить структуру TEXTMETRIC ? где мне брать данне для неё?
0
 Аватар для casper007
71 / 71 / 58
Регистрация: 12.12.2013
Сообщений: 420
03.02.2015, 23:11 4
Цитата Сообщение от mh-coder Посмотреть сообщение
где мне брать данне для неё?
<Клик>
Там практически та же структура, что и LOGFONT. Вы описываете, по каким параметрам рисовали, следовательно по ним начинать подсчет
0
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
09.02.2015, 22:32  [ТС] 5
Цитата Сообщение от casper007 Посмотреть сообщение
Там практически та же структура, что и LOGFONT. Вы описываете, по каким параметрам рисовали, следовательно по ним начинать подсчет
ну считать я так понял она должно мне сама, только вот параметр ширины я там найти немогу..
0
 Аватар для casper007
71 / 71 / 58
Регистрация: 12.12.2013
Сообщений: 420
09.02.2015, 22:42 6
Цитата Сообщение от mh-coder Посмотреть сообщение
только вот параметр ширины я там найти немогу..
tmHeight
C++
1
tagTEXTMETRIC.tmHeight
0
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
10.02.2015, 10:30  [ТС] 7
Цитата Сообщение от casper007 Посмотреть сообщение
tmHeight
это ж высота
0
 Аватар для casper007
71 / 71 / 58
Регистрация: 12.12.2013
Сообщений: 420
10.02.2015, 10:43 8
Цитата Сообщение от mh-coder Посмотреть сообщение
это ж высота
ошбся. lfWidth;
0
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
10.02.2015, 22:09  [ТС] 9
Цитата Сообщение от casper007 Посмотреть сообщение
ошбся. lfWidth;
там честнро говоря вообще левые данные, совсем неправельные, тут получается проблема в следующем, например функция GetTextExtentPoint32W считает данные правильно, неправильно она считает только в том случае, если например шрифт предназначен для английского текста, в тексте присудствуют русские слова....
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
16.02.2015, 16:10 10
Насколько я помню, точно подсчитать длину текста в пикселях можно только для стандартных шрифтов типа Times New Roman, а для какого-нибудь рукописного уже погрешность возникает.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
16.02.2015, 22:20 11
Цитата Сообщение от mh-coder Посмотреть сообщение
там честнро говоря вообще левые данные
Не верю на слово.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.02.2015, 22:20
Помогаю со студенческими работами здесь

Как программно указать длину в Star, а не в пикселях
Нужно в коде (не XAML, а CS) указать длину в взвешенной пропорции, но не знаю как это сделать. В XAML это делается очень просто: ...

Как узнать длину текстовой строки в пикселях?
А может кто знает как узнать длину текстовой строки в пикселях или там сантиметрах не важно.(т.е функция с заданием шрифта и его размера),...

Определить длину строки в пикселях
Знаю, что вопрос сначала покажется простым (а может даже и тупым:)). Стандартно для расчета длины использую вот такую функцию: void...

Найти длину и ширину текста в пикселях
Как мне узнать реальные длину и ширину текста в пикселях?

Максимально быстро определить длину слова в пикселях
Здравствуйте!!!! Давно хотел создать такую тему и вот настал момент. Хотел спросить как можно быстро определить максимально длинное слово...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Winforstrap или красявый дизайн своими руками на HTML+JS+Winform­s
anomal6 04.03.2025
Сидел тут вечером ковырял проект на MAUI, и как же глупо создаются пакеты MSIX и система обновлений пакета публикации, но не об этом. Бывает нужен современный дизайн программы а писать на MAUI,. . .
Формат данных для симуляции физики, посредством распространённы­­­­­­­х не обученных моделей.
Hrethgir 04.03.2025
Что-то как-то снова потерялось, зато катангенсы закатангесились в одном сообщении. На днях писал, что планирую для работы апгрейдить (на этот раз удачно) девайс для работы (конкретно - здоровья для,. . .
Концепция variadic
CoderHuligan 04.03.2025
Мне не очень нравится (а кому это нравится?) что у нас есть отдельно компилятор, отдельно линковщик, причем со своим собственным командным языком. При этом усложнении надо знать помимо языка. . .
Java Record или Kotlin Data Class: что лучше для неизменяемых данных
Wired 04.03.2025
Java Record и Kotlin Data Class — два мощных инструмента для обуздания неизменяемых структур данных, каждый со своим уникальным подходом к решению этой задачи. История их появления весьма. . .
Создание производительны­­­х API с Java и gRPC
Wired 04.03.2025
В мире микросервисной разработки вопрос производительности часто становится краеугольным камнем. И хотя REST API давно завоевал сердца разработчиков своей простотой и интуитивностью, при высоких. . .
Что нового в JDK 24
Wired 04.03.2025
JDK 24 — это настоящий прорыв в эволюции Java, который кардинально меняет правила игры. В этом релизе разработчики Oracle наконец-то довели до ума множество критически важных улучшений в. . .
Разработка блокчейн с использованием Java: смарт-контракты и dApp
Wired 04.03.2025
Погружаясь в мир блокчейн-разработки на Java, разработчик получает доступ к внушительному арсеналу инструментов. В отличие от Solidity, который "заперт" в экосистеме Ethereum, Java предоставляет. . .
WebAssembly в Kubernetes
stackOverflow 03.03.2025
В современной экосистеме облачных технологий WebAssembly (Wasm) становится все более значимым компонентом, предлагая уникальный подход к выполнению кода в распределенных системах. Эта технология. . .
GitHub Actions или Jenkins: Выбираем CI/CD платформу
stackOverflow 03.03.2025
Непрерывная интеграция и развертывание (CI/ CD) изменили подход к разработке программного обеспечения, превратив его в бесшовный процесс от написания кода до развертывания в продакшн. GitHub Actions и. . .
Автоматизация тестирования Pull Request в Kubernetes: Интеграция с GitHub Actions и GKE
stackOverflow 03.03.2025
Масштабные проекты с использованием Kubernetes требуют надежной системы тестирования изменений перед их внедрением в продакшн-среду. Традиционный подход с ручной проверкой Pull Request не справляется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru