![]() |
|
![]() ![]() ![]() |
|
GSasha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 23.3.2008 Где: Ukraine Репутация: нет Всего: нет |
Есть такая проблема:
Попытка натайпать текст в CRichEditCtrl и при нажатой левой кнопки мыши - в результате приводит к неудаче. Тоесть текст в таком случае не вводиться. Подскажите, с чем связаная эта особенность CRichEditCtrl и как обойти ее. Вот этот вариант проблему решает, но я думаю что есть более правильное решение:
Спасибо |
|||
|
||||
Albor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
||||
|
||||
GSasha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 23.3.2008 Где: Ukraine Репутация: нет Всего: нет |
Для ввода текста я использую эмуляцию посимвольного набора текста в RichEdit (вместо SetSel -> ReplaceSel я шлю WM_CHAR). И вот наткнулся на проблему описанную выше, при нажатой левой кнопке мыши моя эмуляция неработает.
|
|||
|
||||
Albor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
Если это эмуляция, то можно перегрузить для своего эдита PreTranslateMessage(), где перехватить WM_LBUTTONDOWN и вернуть TRUE, но тогда фокус ввода мышкой не поставишь.
|
|||
|
||||
GSasha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 23.3.2008 Где: Ukraine Репутация: нет Всего: нет |
Вариант с PreTranslateMessage() не пройдет, так как RichEdit не будет обрабатывать WM_LBUTTONDOWN совсем. Нужно другой вариант.
|
|||
|
||||
Albor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
Упс, я вас понял. Можно продумать фильтр. Думаю что реализуемо. По-моему, можно отследить состояние кнопки мыши при приходе WM_CHAR. Это сообщение отредактировал(а) Albor - 4.6.2010, 17:53 |
|||
|
||||
GSasha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 23.3.2008 Где: Ukraine Репутация: нет Всего: нет |
Имеено этот вариант я и пробовал. Вариант рабочий (см первый пост). Но я не думаю что RichEdit контрол проверяет состояние левой кнопки мыши чтобы обрабатывать WM_CHAR или нет. Непонятна суть этой фичи. |
|||
|
||||
Albor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
Я думаю, что при нажатой кнопке мыши, обрабатывается только мышь, поскольку может идти выделение текста и изменять сам текст в это время было бы очень плохо. |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |