Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 0
Регистрация: 22.09.2013
Сообщений: 219

Убрать выделение всего текста в CrichEditCtrl при установке фокуса

30.08.2016, 15:09. Показов 1923. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Возникла проблема с определением строки в CrichEditCtrl.
Я перехватываю двойной клик (Определить номер строки по положению каретки в CRichEditCtrl ), после чего открываю окошко с какими-либо данными, т.е. фокус переходит на то окно.
C++
1
2
3
4
5
6
7
8
9
void CRichEditCtrl_my::OnLButtonDblClk(UINT nFlags, CPoint point) 
{
    long start,end;
    GetSel(start, end);
    int LineNum = LineFromChar(start);
    
    
    //CRichEditCtrl::OnLButtonDblClk(nFlags, point);
}
Как только я вновь кликаю по списку в старом окне, то у меня в выделении оказывается весь текст. Т.е. start =0, end = номеру последнего символа.
Как я понял - это происходит при установке фокуса на окно с CRichEditCtrl - причем не зависимо от количества кликов.
Я пробовал изменять OnSetFocus(CWnd* wnd), но максимум чего добился - убрал визуализацию этого выделения. Но в системе оно осталось, и в функцию двойного клика все равно приходят такие координаты.

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

Добавлено через 53 минуты
Тут не совсем понятно что происходит с контролом после сообщения KillFocus, либо перед сообщением SetFocus.
Потому что когда я перехватываю эти сообщения, то после KillFocus выделения всего текста еще не произошло, а при перехвате SetFocus - до этой функции выделение уже выставлено.

Добавлено через 3 часа 12 минут
И еще, пару вопросов подскажите пожалуйста:
1) Как в CRichEditCtrl выбрать шрифт? (нужен моноширинный, типа Courier New, чтобы пробел имел ту же длину что и числа). Пробовал к CDC выбрать Сfont, но не помогло.

2) Как выделить при помощи SetSel полностью какую-то линию? Я по номеру линии пытаюсь определить ее длину. Но LineLength выдает постоянно длину первой строки, хотя я номер строки подаю туда верный.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.08.2016, 15:09
Ответы с готовыми решениями:

Тормозит при установке фокуса
День добрый. Столкнулся со следующей проблемой: Есть приложение с GUI. Суть довольно простая - есть 3 канала UDP - данные,...

При наведении фокуса на textbox происходит выделение текста
Мне нужно, что чтобы при наведении мышки на текстбокс, на него переводился фокус. Пишу: private void...

Выделение всего текста в TextBox при клике мышью
Друзья, подскажите пожалуйста как можно реализовать выделение ВСЕГО текста в TextBox'е посредством нажатия на этот текст мышкой? Пробовал...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.08.2016, 15:09
Помогаю со студенческими работами здесь

При выделении всего текста в textbox издается звук - как убрать?
Добрый день! В программе несколько textbox. Мне нужно, чтобы при нажатии Ctrl+A выделялся текст. Использую код: private...

Выделение всего текста в TextBox
Блин, совсем я что-то. Нужно выделить текст в текстбоксе, т.е. вызвать двойной клик В ричтексте вроде делал так TextBox1.Focus() ...

Смена раскладки на русскую при установке фокуса на textbox
Добрый день! Подскажите, как принудительно менять раскладку на русскую каждый раз, когда устанавливается фокус на textbox1?

Снять выделение с элемента ListView при потере фокуса
Доброго времени суток! На форме есть элемент listView. Допустим, я выбираю в нем некий элемент, а затем кликаю на любое другое место на...

Как в Edit выделить весь текст при установке фокуса ввода?
Если произвести двойной клик на окне Edit box - происходит выделение всего текста в нём. Необходимо реализовать тоже, но при одном клике...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru