AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.05.2008, 12:40   #1  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Ширина текста в пикселях
Вопрос можно перефразировать иначе: как узнать, какова высота и ширина в пикселях символа в данном или дефолтовом шрифте.
__________________
Axapta has seduced me deadly!
Старый 14.05.2008, 13:01   #2  
Russland is offline
Russland
MCTS
Аватар для Russland
MCBMSS
 
267 / 116 (4) +++++
Регистрация: 17.10.2005
Адрес: Донеччина, Україна
Узнать ширину символа можно винАпи ф-цией GetCharABCWidths
__________________

В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню
За это сообщение автора поблагодарили: HorrR (1).
Старый 14.05.2008, 13:21   #3  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Есть \System Documentation\Classes\FormControl\calcControlSize только он для каких-то стандартных символов выводит (по карйней мере, достаточно зорошее приближение максимальной ширины символа - кможжить на 2)
За это сообщение автора поблагодарили: HorrR (1).
Старый 14.05.2008, 14:58   #4  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Спасибо обоим, полезно однако)
__________________
Axapta has seduced me deadly!
Старый 14.05.2008, 15:22   #5  
Alex_KD is offline
Alex_KD
Участник
AxAssist
MCBMSS
Соотечественники
 
522 / 362 (14) ++++++
Регистрация: 06.07.2006
Адрес: Melbourne, Down Under
Цитата:
Узнать ширину символа можно винАпи ф-цией GetCharABCWidths
Это в in logical units. Это не пиксели будут. Потом я например не совсем понимаю как массив ABC структур заполнить.

Цитата:
Есть \System Documentation\Classes\FormControl\calcControlSize
Насколько я понимаю, этот метод перегружается в наследниках и уже там выполняет свою непосредственную роль. А роль у него посчитать размер контрола, т.е. (наверное) с отступами на прорисовку границ кнопки (например).

Я вычисляю размер ширины строки так (не в Аксапте, но в принципе разницы не должно быть):
Посылаю в ListControl сообщение LVM_GETSTRINGWIDTH. Оно возвращает длину строки:
Цитата:
The LVM_GETSTRINGWIDTH message returns the exact width, in pixels, of the specified string.
Цитата:
lResult = SendMessage( // returns LRESULT in lResult
(HWND) hWndControl, // handle to destination control
(UINT) LVM_GETSTRINGWIDTH, // message ID
(WPARAM) wParam, // = 0; not used, must be zero
(LPARAM) lParam // = (LPARAM) (LPCSTR) psz;
);
ЗЫ Попробую на Аксапте сделать...мне стало интересно
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0
За это сообщение автора поблагодарили: HorrR (1).
Старый 14.05.2008, 15:27   #6  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Оу, вот это ответ, благодарствую!
__________________
Axapta has seduced me deadly!
Старый 14.05.2008, 16:26   #7  
Alex_KD is offline
Alex_KD
Участник
AxAssist
MCBMSS
Соотечественники
 
522 / 362 (14) ++++++
Регистрация: 06.07.2006
Адрес: Melbourne, Down Under
Цитата:
Сообщение от Alex_KD Посмотреть сообщение
ЗЫ Попробую на Аксапте сделать...мне стало интересно
А вот не получилось...0 возвращает
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0
Старый 16.05.2008, 11:01   #8  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от HorrR Посмотреть сообщение
Вопрос можно перефразировать иначе: как узнать, какова высота и ширина в пикселях символа в данном или дефолтовом шрифте.
А можно уточнить, что значит "данный шрифт" и что "дефолтный"? Т.е. как вы хотите задавать нужный шрифт?
__________________
Axapta v.3.0 sp5 kr2
Старый 19.05.2008, 15:05   #9  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Сие есть корявость) Имелось в виду в используемом на данный момент шрифте.
__________________
Axapta has seduced me deadly!
Старый 19.05.2008, 15:22   #10  
Russland is offline
Russland
MCTS
Аватар для Russland
MCBMSS
 
267 / 116 (4) +++++
Регистрация: 17.10.2005
Адрес: Донеччина, Україна
Если вы пытаетесь рассчитать размеры прямоугольника, куда выводится текст или пытаетесь проверить "влезет" ли строка в прямоугольник, то можно попользовать ф-цию DrawText с флагом DT_CALCRECT
__________________

В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню
Старый 19.05.2008, 16:10   #11  
RumataEstor is offline
RumataEstor
очами вижу
 
84 / 19 (1) ++
Регистрация: 29.04.2008
Адрес: Москва
Цитата:
Сообщение от Russland Посмотреть сообщение
Если вы пытаетесь рассчитать размеры прямоугольника, куда выводится текст или пытаетесь проверить "влезет" ли строка в прямоугольник, то можно попользовать ф-цию DrawText с флагом DT_CALCRECT
Она тоже вернет размеры в логических координатах. Автору требуются пискели.
Старый 19.05.2008, 16:46   #12  
ShowPoint is offline
ShowPoint
Участник
 
16 / 10 (1) +
Регистрация: 28.07.2005
Адрес: Moscow, Russia
DC.LPtoDP не поможет?

The LPtoDP function converts logical coordinates into device coordinates.
__________________
SY,
AVA
Теги
программно, текст, ширина

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ширина секции в отчете symba DAX: Программирование 2 06.06.2008 17:46
Форматирование текста if_maks DAX: Программирование 64 20.11.2006 13:12
Вывод в Excel в формате XML и ширина колонок gl00mie DAX: Программирование 1 30.10.2006 10:45
Ширина формы больше чем ширина экрана belugin DAX: Программирование 5 07.12.2005 15:56
Автозавершение текста slava DAX: Функционал 4 30.12.2001 00:29

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:33.