0 / 0 / 0
Регистрация: 20.02.2017
Сообщений: 7
|
|
1 | |
Неправильное положение каретки в поле EDIT20.02.2017, 20:10. Показов 1531. Ответов 4
Метки нет Все метки)
(
Здравствуйте, уважаемые форумчане. Столкнулся с проблемой, даже не знаю как правильно ее назвать в двух словах, в связи с чем не бейте, если заголовок неправильно описывает суть проблемы. Облазил, много форумов по разным запросам в поисковиках, но, видимо все мои запросы были не совсем точны по отношению к проблеме, поэтому я решил таки создать тему на данном форуме. А суть заключается вот в чем: средствами winapi создал я в своем приложении однострочное поле edit. После чего я напечатал в него какой-то текст, и тут обнаружилась одна очень неприятная ситуация: когда кликаешь мышью в какую-либо часть текста, каретка оказывается не в том месте, куда я кликнул мышью, или правее или левее от того места, куда кликнул, в зависимости от отдаленности от начала строки и символов, которые присутствую в строке. Немного углубившись в то, что такое WinApi и как оно там все происходит, я понял, что это из-за того, что шрифт мой не моноширинный (я использовал Arial), и, видимо, ширина строки и отдельных символов рассчитывается неправильно, о чем свидетельствует еще и тот факт, что при заполнении поля символами до максимального возможного (ES_AUTOHSCROLL не стоит), то есть до ширины поля, ввод символов становится невозможным намного раньше, чем заканчивается само поле, в конце остается еще много места, в зависимости, опять же, от того, какие символы были введены(поигравшись с шириной шрифта, получалось, что и наоборот, символы печатались за пределы поля, которых уже не было видно ).
Я уже понял, что универсального решения данной проблемы нет, но хотелось бы знать в какую сторону копать, чтоб это решить. Раньше занимался веб-программированием, и, естественно, там такой проблемы возникнуть просто не могло, но щас решил заняться более серьезными вещами, и такая, казалось бы, простая задача, как работа с текстом, поставила меня просто в тупик. В конце-концов, текстовые редакторы(тот же блокнот) работают как-то с любыми шрифтами(моноширинный-немоноширинный, стадартный виндоусовский или необычный какой-то, наклонный-ненаклонный) и положение каретки там определятся нормально....(хотя было бы странно, если б было по-другому)))) Буду очень благодарен хотя бы за наводку))
0
|
|
20.02.2017, 20:10 | |
Ответы с готовыми решениями:
4
Перемещение каретки в поле Edit Положение каретки в поле ввода Положение каретки в консоли
|
411 / 146 / 48
Регистрация: 02.06.2016
Сообщений: 331
|
|
21.02.2017, 07:04 | 2 |
Все, что вы написали не подтверждается. Да и шрифт по умолчанию не моноширинный.
Выкладывайте код.
0
|
0 / 0 / 0
Регистрация: 20.02.2017
Сообщений: 7
|
||||||
21.02.2017, 12:26 [ТС] | 3 | |||||
Шрифт для поля EDIT определяется на 128 строке
Щас мысль пришла в голову: наверно, я не в том сообщении просто определяю шрифт для EDIT.
0
|
Модератор
![]() ![]() 5108 / 4541 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
|
||||||
21.02.2017, 12:59 | 4 | |||||
![]() Решение
Совершенно верно:
1
|
0 / 0 / 0
Регистрация: 20.02.2017
Сообщений: 7
|
|
21.02.2017, 15:16 [ТС] | 5 |
Спасибо большое! Вот я лошара-то, оказывается) Закрываем тему.
0
|
21.02.2017, 15:16 | |
Помогаю со студенческими работами здесь
5
Есть ли в классе TextArea метод для установки каретки в нужное положение? Неправильное положение элемента
Реализовать функцию, что-бы выполнялись действия по выходу каретки из EDIT окна Как по нажатию кнопки сделать ввод символа в edit в позицию курсора (каретки) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |