Уроки Iczelion'а




Урок 34. Операции над текстом в RichEdit


&nbsp В этом туториале вы узнаете больше о операциях над текстом, доступных в RichEdit, например о том, как искать/заменять текст и переходить к определенной строке.

&nbsp Скачайте пример.

Теория:

&nbsp Поиск текста

&nbsp В RichEdit есть несколько текстовых операций. Поиск определенного текста - одна из них. Поиск текста осуществляется с помощью сообщений EM_FINDTEXT или EM_FINDTEXTEX. Эти сообщения мало отличаются друг от друга.

EM_FINDTEXT

&nbsp wParam == опции поиска.

&nbsp Может быть комбинацией значений, приведенных ниже. Эти опции идентичны как для EM_FINDTEXT, так и для EM_FINDTEXTEX.

  • FR_DOWN - если этот флаг указан, поиск начинается с конца текущего выделенного текста и до самого конца (вперед). Этот флаг действует только в RichEdit 2.0 или выше: этот способ применяется по умолчанию в RichEdit 1.0. В RichEdit 2.0 по умолчанию поиск осуществляется от конца выделенного текста до начала (назад). Кратко говоря, если вы используете RichEdit 1.0, вы ничего не можете сделать, чтобы изменить направление поиска: он всегда ищет вперед. Если вы используете RichEdit 2.0 и хотите искать вперед, вам нужно указать этот флаг, иначе поиск будет производиться назад.
  • FR_MATCHCASE - если этот флаг указан, будет учитываться регистр.
  • FR_WHOLEWORD - если этот флаг указан, поиск будет искать место в тексте, которое будет удовлетворять указанной поисковой строке.
  • &nbsp Вообще-то, есть еще несколько флагов, но они относятся к языкам, отличным от английского.

    &nbsp lParam == указатель на структуру FINDTEXT.

    FINDTEXT STRUCT chrg CHARRANGE <> lpstrText DWORD ? FINDTEXT ENDS

    &nbsp chrg - это структура CHARRANGE, которая определена следующим образом:

    CHARRANGE STRUCT cpMin DWORD ? cpMax DWORD ? CHARRANGE ENDS

    &nbsp cpMin содержит индекс первого символа в массиве символов (диапазон).

    &nbsp cpMax содержит индекс символа, который следует непосредственно за последним символов в массиве символов.

    &nbsp Фактически, чтобы найти строку текста, вам нужно указать диапазон символом, в котором нужно искать. Значение cpMin и cpMax будут зависеть от того, проводится ли поиск назад или вперед. Если поиск идет вперед, cpMin задает начальный индекс, а cpMax - конечный. Если поиск идет назад, тогда cpMin содержит конечное значение индекса, в то время как cpMax задает начальный индекс.




    Содержание  Назад  Вперед