На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются.
4. Используйте теги [ code=cpp ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Старайтесь формулировать свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной и более давности без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта (C++) user posted image FAQ Форума user posted image Наши Исходники user posted image Поиск по Разделу user posted image MSDN Library Online (Windows Driver Kit) user posted image Google

Ваше мнение о модераторах: user posted image B.V.
Модераторы: B.V.
  
> Какие сообщения и у кого ловить, когда в Edit выделяется текст?
    Я так понимаю, что при выделении текста Едит шлёт чего-то родителю... Или не так? И как получить координаты полученного выделенного фрагмента?
     
     
      Цитата Артур @
      Я так понимаю, что при выделении текста Едит шлёт чего-то родителю... Или не так?

      RichEdit посылает WM_NOTIFY с EN_SELCHANGE, простой Edit вроде ничего не отправляет


      Цитата Артур @
      И как получить координаты полученного выделенного фрагмента?

      При помощи сообщения EM_GETSEL, либо CEdit::GetSel
        Олег МСпасибо :)

        Да, WM_NOTIFY не приходит. :( то есть, момент селекта не поймать?

        С положением селекта в тексте понятно, но мне бы получить все ректы выделенного текста.
         
         
          Цитата Артур @
          то есть, момент селекта не поймать?

          Ну отчего ж не поймать. Приходят вполне конкретные мышиные и клавиатурные сообщения. Я бы ещё посмотрел сообщения о перерисовке.
          Что до опыта реализации подобной задачи, делал когда-то через полсекундный таймер с проверкой выделения.
          char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
          for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;


          user posted image Чат Исходников в СкайпеНе тормози, форум теперь здесь!Чат Исходников в Дискорде
            B.V.
            Не, если штатными средствами нельзя, то не надо.

            Как найти верхний угол селекта, нашел - EM_POSFROMCHAR
            Можно ли штатно получить ректы выделенной области, и если нельзя, то из чего эту информацию собрать?

            Скажем, у нас не Едит, а РичЕдит. Как получить ширину строки, при условии, что в ней может быть разное форматирование? И совпадает ли вообще ширина селекта с шириной строки?
            Сообщение отредактировано: Артур -
             
             
              Цитата Артур @

              Скажем, у нас не Едит, а РичЕдит. Как получить ширину строки, при условии, что в ней может быть разное форматирование?

              Находишь индексы символов в начале/конце строки при помощи EM_LINEFROMCHAR, EM_LINEINDEX, EM_LINELENGTH и т.д., потом вызываешь для них EM_POSFROMCHAR
                Спасибо :)
                 
                 
                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                0 пользователей:


                Рейтинг@Mail.ru
                [ Script Execution time: 0,0947 ]   [ 15 queries used ]   [ Generated: 17.07.19, 18:36 GMT ]