Как определить номер строки управляющего текста?

Диалог содержит статический текстовый элемент управления. При инициализации диалогового окна приложение устанавливает пользовательский текст для этого статического текстового элемента управления:

HWND hWnd = GetDlgItem(IDC_MY_STATIC_TEXT);
::SetWindowText(hWnd, szMyCustomText);

Мне нужно знать количество строк, на которые будет разбит указанный текст, и ширину этого текста, когда он отображается в пользовательском интерфейсе. Не могли бы вы поделиться своей идеей?


person Vitaly    schedule 28.06.2011    source источник
comment
Что это значит? Что ты пытаешься сделать?   -  person Yakov Galka    schedule 28.06.2011
comment
Как говорит ybungalobill, на этот вопрос нужно гораздо больше информации, чтобы на него можно было ответить. Используйте ссылку редактирования, чтобы улучшить свой вопрос.   -  person Cody Gray    schedule 28.06.2011


Ответы (1)


Это будет зависеть от шрифта, DPI и других настроек. Я рекомендую искать элементы управления статическим текстом в котором говорится:

Система отображает как можно больше текста в статическом элементе управления и вырезает все, что не помещается. Чтобы вычислить подходящий размер элемента управления, получите метрики шрифта для текста. Дополнительные сведения о шрифтах и ​​метриках шрифтов см. в разделе Шрифты и текст.

В сочетании с этим сообщением о вычислении размера результирующего текста должно получиться вы на пути к вычислению ширины текста (и, зная высоту текста, количество строк).

person user786653    schedule 28.06.2011