Уроки Iczelion'а



         

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


&nbsp lpstrText - это указатель на текстовую строку, которую нужно искать.

&nbsp EM_FINDTEXT возвращает индекс первого символа в заданной текстовой строке в RichEdit. Оно возвращает -1, если указанный текст не был найден.

&nbsp EM_FINDTEXTEX

&nbsp wParam == опции поиска. То же самое, что и EM_FINDTEXT. lParam == указатель на структуру FINDTEXTEX.

FINDTEXTEX STRUCT chrg CHARRANGE <> lpstrText DWORD ? chrgText CHARRANGE <> FINDTEXTEX ENDS

&nbsp Первые два члена FINDTEXTEX идентичны соответствующим полям в структуре FINDTEXT. chrgText - это структура CHARRANGE, которая будет заполнена начальным и конечным индексами, если будут найдены какие-либо совпадения.

&nbsp Возвращаемое значение EM_FINDTEXTEX - то же самое, что и у EM_FINDTEXT.

&nbsp Разница между EM_FINDTEXT и EM_FINDTEXTEXT - это то, что у структуры FINDTEXTEX есть дополнительное поле, chrgText, которое будет заполнено начальным и конечным индексами, если будут найдены совпадения. Это удобно, если мы хотим иметь возможность осуществлять больше текстовых операций над строкой.

&nbsp Замещение/вставка текста

&nbsp Контрол RichEdit предоставляет EM_SETTEXTEX для замещения/вставки текста. Это сообщение комбинирует функциональность WM_SETTEXT и WM_REPLACESEL. У него следующий синтаксис:

&nbsp EM_SETTEXTEXT wParam == указатель на структуру SETTEXTEX.

SETTEXTEX STRUCT flags DWORD ? codepage DWORD ? SETTEXTEX ENDS

&nbsp Поле 'flags' может быть комбинацией следующих значений:

  • ST_DEFAULT - удаляет стек совершенных операций, сбрасывает форматирование RichEdit.
  • ST_KEEPUNDO - сохраняет стек совершенных операций.
  • ST_SELECTION - замещает выделенный текст и сохраняет форматирование.
  • &nbsp Поле 'codepage' - это константа, которая указывает кодовую страницу. Обычно мы указываем CP_ACP.

    &nbsp Выделение текста

    &nbsp Мы можем выделить текст программно с помощью сообщений EM_SETSEL или EM_EXSETSEL. Обе прекрасно работают. Выбирать, какое из сообщений необходимо использовать, зависит от доступного формата индексов символов. Если они уже сохранены в структуры CHARRANGE, проще использовать EM_EXSETSEL.




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