![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
![]()
И снова, здравствуйте! Интересует такой вопрос: Допустим я хочу чтобы строка/слово текста точно умещалось в окно заданного размер, я задаю размеры окна в главной функции окна, в блоке сообщения WM_CREATE я пытаюсь вычислить ширину символа так cxChar =cxClient / nCharas т.е. отношение ширины окна(в пикселах) к количеству символов в строке(не в пискелах). Далее вычисляю высоту символа cyChar = -MulDiv(cxChar, GetDeviceCaps(hdc, LOGPIXELSY), 72); всё бы ничего, но окно не вмещает всех символов, один символ не хочет помещаться в окне. Наверняка есть более оптимальный способ, но на данный момент я делаю так. Чего не хватает в расчётах, и как довести до ума то, что уже есть, и сделать так, чтобы при увеличении/уменьшении окна текст так же оставался в окне, производить перерасчёт размеров символов в wm_size:...
Окно3.jpg |
![]() |
![]() |
![]() |
#2 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 980
|
![]()
apofioz,
как узнать размеры текста, выведенного на конкретный HDC с конкретным HFONT GetTextExtentPoint32 как подогнать клиентскую часть окна AdjustWindowRect |
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#4 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 980
|
![]()
apofioz, код показывай тогда
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
![]() Код:
|
![]() |
![]() |
![]() |
#6 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 980
|
![]()
apofioz, так в твоём коде нет использования GetTextExtentPoint32
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
![]() |
![]() |
![]() |
![]() |
#8 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 980
|
![]()
apofioz, обычно она работает чётко, просто что-то не так делаешь.
Я бы пересчёт размера вынес в обработчик WM_TIMER 250мс объект шрифта можно сделать полем класса и создать один раз. Или вообще назначить шрифт окну, чтобы каждый раз не назначать для HDC |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
![]() |
![]() |
![]() |
![]() |
#10 |
фрилансер
Форумчанин
Регистрация: 11.10.2019
Сообщений: 980
|
![]()
apofioz, прицепи проект в ZIP архиве. Если время будет - я попробую поковырять. Или кто-то другой успеет уже
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Win API 32. Открытие окна при нажатии на строку листбокса | Dark_Tarakan | Помощь студентам | 0 | 20.10.2016 20:52 |
Открытие окна при нажатии на строку листбокса | Dark_Tarakan | Win Api | 0 | 19.10.2016 18:16 |
подгон компонентов под размер окна | brutalis | Qt и кроссплатформенное программирование С/С++ | 1 | 22.09.2013 11:42 |
Как считать строку из диалогового окна (не консольного) | Elloriane | Общие вопросы C/C++ | 6 | 06.03.2013 21:59 |
Подгон текста по размеру | Jakethefish | JavaScript, Ajax | 1 | 07.03.2011 15:05 |