Введение в программирование

       

Класс CEdit


Класс CEdit обеспечивает функционирование элемента управления "окно редактирования", называемое также текстовым полем. Окно редактирования может быть как однострочным, так и многострочным. Иногда однострочное окно редактирования также называют полем ввода.

Для создания многострочного окна редактирования следует установить значение свойства Multilin равным True. Для установки разбиения на строки с использованием мягкого конца строки следует установить свойство Auto HScroll.

При мягком конце строки, в отличие от жесткого, окно редактирования отображает разделение на строки, не вставляя непосредственно в сам текст символы конца строки и перевода каретки.

При двойном щелчке мыши на элементе управления выполняется автоматическая вставка метода обработчика сообщения OnEnChangeEdit.

Таблица сообщений родительского окна может содержать для элемента управления "окно редактирования" вызовы следующих стандартных обработчиков сообщений:

  • ON_EN_CHANGE - пользователь изменил текст в окне редактирования.
  • ON_EN_ERRSPACE - недостаточно памяти.
  • ON_EN_HSCROLL - пользователь щелкнул на горизонтальной линейке прокрутки окна редактирования.
  • ON_EN_KILLFOCUS - окно редактирование теряет фокус.
  • ON_EN_MAXTEXT - текущая позиция вставки превысила указанное для окна редактирования число символов; либо не установлен стиль ES_AUTOHSCROLL, а число вставляемых символов превышает ширину окна редактирования или общее число строк превышает высоту окна редактирования.
  • ON_EN_SETFOCUS - окно редактирования получает фокус ввода.
  • ON_EN_UPDATE - пользователь изменил текст в окне редактирования; (а в чем отличие от п.2? - Ред.)
  • ON_EN_VSCROLL - пользователь щелкнул на вертикальной линейке прокрутки окна редактирования.

Класс CEdit предоставляет широкий набор методов для работы с окном редактирования, включая следующие:

  • CanUndo - метод возвращает ненулевое значение, если последнее изменение в окне редактирования можно отменить, и 0 - если изменение отменить нельзя.
  • CharFromPos- метод возвращает номер символа в строке и строки (начиная с 0) для символа, наиболее близко расположенного к указанной параметром точке.
  • Clear - метод удаляет в окне редактирования текущее выделение текста.
  • Copy - метод копирует текущее выделение текста из окна редактирования в буфер промежуточного хранения.
  • Cut - метод удаляет текущее выделение текста из окна редактирования и копирует его в буфер промежуточного хранения.
  • Paste - метод выполняет вставку данных из буфера промежуточного хранения в текущую позицию окна редактирования.
  • GetFirstVisibleLine - метод возвращает номер первой отображаемой строки в окне редактирования.
  • GetLine - метод копирует указанную строку текста (без нулевого символа) из окна редактирования в буфер и при успешном завершении возвращают количество скопированных байтов.
  • GetLineCount - метод возвращает количество строк текста в многострочном окне редактирования.


    Например:

    extern CEdit* pmyEdit; int i, nLineCount = pmyEdit->GetLineCount(); CString strText, strLine; for (i=0;i < nLineCount;i++) { // Получение длины строки i int len = pmyEdit->LineLength(pmyEdit->LineIndex(i)); pmyEdit->GetLine(i, strText.GetBuffer(len), len); strText.ReleaseBuffer(len); strLine.Format(TEXT("line %d: '%s'\n"), i, strText); cout<< strLine; }
  • GetSel - метод определяет позицию первого и последнего символа выделенного фрагмента текста.

    Например:

    extern CEdit* pmyEdit; // Выделить все символы, следующие за текущим // выделенным фрагментом DWORD dwSel = pmyEdit->GetSel(); // Определение // позиций текущего выделения pmyEdit->SetSel(HIWORD(dwSel), -1); // HIWORD(dwSel) - // позиция первого невыделенного символа, // следующего за выделением

  • LimitText - метод устанавливает максимально допустимую длину (в байтах) вводимого пользователем текста.
  • LineIndex - метод возвращает номер первого символа в указанной строке, а при значении параметра, равном -1 - номер первого символа в текущей строке.
  • LineLength - метод возвращает длину строки.
  • ReplaceSel - метод выполняет замену выделенного фрагмента текста на указанную строку.
  • SetPasswordChar - метод устанавливает символ, отображаемый при вводе пароля, вместо любого вводимого пользователем символа.
  • SetSel - метод выполняет выделение в окне редактирования указанного фрагмента текста.



Содержание раздела