![]() |
|
|
![]()
|
|
| torero |
|
|||
|
Бывалый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 177 Регистрация: 1.2.2006 Репутация: нет Всего: нет |
Я на окно "вид" ( от CScrollView) накладываю окошко RichEdit для редактирования текста.
Передаю в RichEdit фокус ввода и всё пока нормально. Но мне нужно отслеживать координаты курсора. Для этого я ввожу метод OnKeyDown() , но программа в него не попадает, видимо потому, что окно "вид" не имеет фокуса ввода. Как же быть в такой ситуации: вводить символы в RichEdit и определять их координаты? |
|||
|
||||
| Kostt |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 169 Регистрация: 8.1.2006 Где: Томск Репутация: 2 Всего: 3 |
событие ON_WM_KEYDOWN отслеживаешь?
|
|||
|
||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 1 Всего: 44 |
А как это взаимосвязанно ? -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| torero |
|
|||
|
Бывалый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 177 Регистрация: 1.2.2006 Репутация: нет Всего: нет |
ON_WM_KEYDOWN я не отслеживал, потому что раньше попадал в метод OnKeyDown
при нажатии клавиши. Туда, вроде бы, сообщение и посылается. Нужны мне не только координаты в RichEdit, но и клавиши:стрелки, PgUp, PgDown и другие, чтобы менять координаты самого RichEdit в окне "вид". |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Сообщение WM_KEYDOWN всегда передается в окно с фокусом, т.е. в рич-эдит. Едиственный способ поймать сообщение в другом месте - перехват. В MFC для этого есть PreTranslateMessage. -------------------- ... |
|||
|
||||
| threef |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 27.10.2005 Где: Запорожье Репутация: 1 Всего: 10 |
Попробуй получить уведомление EN_CHANGE и получишь координаты каретки(не курсора !) при помощи редактор->GetCaretPos()
|
|||
|
||||
| torero |
|
|||
|
Бывалый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 177 Регистрация: 1.2.2006 Репутация: нет Всего: нет |
С методом PreTranslateMessage получилось сразу. Как то я не заметил этод метод.
А сообщение EN_CHANGE не проходит. Вот если "вид" сделан на основе CRichEditView, то тогда всё работает. Но всё оказалось просто. Я поставил : CPoint point; point=m_rich.GetCaretPos(); в тот же метод PreTranslateMessage и получаются координаты каретки в системе координат RichEdit. Большое спасибо за советы. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |