сложный и важный вопрос по EditBox
Есть mfc с++ приложение, написанное под MSVC 2005.
На форме есть EditBox, к которому привязана CString-переменная. В этот эдитбокс пользователь осуществляет ввод некоего текста.
Так вот, вопрос в том, как можно определить строчку, на которой в данный момент находится курсор? В принципе, посчитать количество переносов не составляет друга (правда ресурсоёмко, очевидно), но не могу понять как отслеживать перемещение курсора. Как распознавать в каком он месте в данный момент находится?
В общём, тёмный лес :/ всю голову сломал.
Заранее, спасибо, всем откликнувшимся!
GetCurSel():)
Цитата: CilCatblack
GetCurSel():)
У CString нет такого метода... Это же CListBox на сколько я помню
ну что, никто не подскажет? :/
Делов-то.
Цитата: hardcase
Сперва получаете с помощью сообщения EM_GETSEL позицию каретки, далее с помощью EM_LINEFROMCHAR получаете строку в которой стоит каретка.
Делов-то.
Делов-то.
есть, получилось! ОГРОМНОЕ СПАСИБО!
Только вот остался ещё один нерешённый вопрос... как обновлять позицию при каждом перемещении курсора (каретки)? В обработчике сообщений эдитбокса не нашёл такого :/
Цитата: nof
Только вот остался ещё один нерешённый вопрос... как обновлять позицию при каждом перемещении курсора (каретки)? В обработчике сообщений эдитбокса не нашёл такого :/
Просто выполняйте все вышеописаные манипуляции при получении каждого сообщения WM_KEYDOWN, WM_LBUTTONUP и WM_RBUTTONUP.