На этом шаге мы перечислим основные методы класса CEdit.
На этом шаге мы перечислим основные методы класса CEdit, который используется для создания поля ввода.
Таблица 1. Основные методы класса CEdit
Метод | Назначение |
---|---|
CEdit(); | Конструирует объект класса CEdit |
BOOL CanUndo(); | Позволяет определить, может ли быть отменена последняя операция редактирования. |
int CharFromPos (CPoint pt); | Возвращает отсчитываемый от нуля номер строки и индексы символа, ближайшего к указанной точке данного интерфейсного элемента класса CEdit. Параметр pt - координаты точки в клиентской области данного объекта класса CEdit.Замечание: Эта функция доступна только в Windows 95 |
void Clear(); | Удаляет (очищает) текущее выделение (если таковое имеется) в поле ввода. Удаление, произведенное функцией Clear(), не может быть отменено вызовом функции-члена Undo(). Чтобы удалить текущее выделение и поместить содержимое в буфер обмена, вызывайте функцию-член Cut(). |
void Copy(); | Копирует текущее выделение в поле ввода в буфер обмена в формате CF_TEXT. |
BOOL Create (DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); | Объект класса CEdit строится в два этапа. Сначала вызывается конструктор класса CEdit, затем функция Create(), создающая поле ввода Windows и связывающая его с объектом класса CEdit. Во время выполнения функции Create() система Windows посылает в поле ввода сообщения WM_NCCREATE, WM_NCCALCSIZE, WM_CREATE и WM_GETMINMAXINFO.
|
void Cut(); | Используется для удаления (вырезки) текущего выделения (если таковое имеется) и скопирования удаляемого текста в буфер обмена в формате CF_TEXT. Удаление, выполненное функцией Cut(), не может быть отменено вызовом функции-члена Undo(). Чтобы удалить текущее выделение, не помещая удаляемый текст в буфер обмена, используйте функцию-член Clear(). |
void EmptyUndoBuffer(); | Переустанавливает (очищает) флажок отмены поля ввода. После вызова этой функции отмена последнего действия станет недоступной. Флажок отмены устанавливается всякий раз, когда может быть отменена операция в поле ввода. Флажок отмены автоматически очищается при вызове функции-члена SetWindowText() или SetHandle() класса CWnd. |
BOOL FmtLines (BOOL bAddEOL); | Разрешает или запрещает включение символов "мягкого" разрыва строк в многострочном поле ввода. Мягкий разрыв состоит из двух символов возврата каретки и символа перевода строки, вставленных в конце строки, переносимой по словам. Жесткий разрыв состоит из одного возврата каретки и возврата строки. На строки, оканчивающиеся жестким разрывом, функция FmtLines() не действует. Windows отвечает, только если объект класса CEdit связан с многострочным полем ввода. Функция FmtLines() влияет только на буфер, возвращаемый фуш GetHandle(), и текст, возвращаемый WM_GETTEXT, и не оказывает никакого влияния на отображение текста на экране в поле ввода. |
int GetFirstVisibleLine() const; | Вызывайте эту функцию, чтобы определить самую верхнюю видимую строку в поле ввода. |
HLOCAL GetHandle() const; | Возвращает дескриптор памяти, зарезервированной в текущий момент для многострочного поля ввода. Дескриптор представляет локальный дескриптор памяти и может использоваться любой функцией памяти Local Windows, принимающей в качестве параvtnhf локальный дескриптор памяти. |
UINT GetLimitText() const; | Возвращает значение, соответствующее ограничению на длину для данного объекта класса CEdit. Это ограничение определяет собой максимальный объем текста в байтах, который может принять поле ввода. Замечание: Эта функция доступна только в Windows 95 |
int GetLine (int nIndex, LPTSTR lpszBuffer) const; int GetLine (int nIndex, LPTSTR lpszBuffer, int nMaxLength) const; |
Получает текстовую строку из поля ввода и помещает ее в буфер, указываемый параметром lpszBuffer. Эта функция не выполняется для однострочного поля ввода. Скопированная строка не содержит завершающего нуль-терминатора.
|
int GetLineCount() const; | Возвращает номер строки в многострочном поле ввода. Функция GetLineCount() работает только для многострочных полей ввода. |
int GetMargins() const; | Используется для определения левой и правой границ данного поля ввода. Границы измеряются в пикселях. Замечание: Эта функция доступна только в Windows 95 |
BOOL GetModify() const; | Определяет, было ли изменено содержание поля ввода.
|
TCHAR GetPasswordChar() const; | Выводит на экран символы пароля когда пользователь вводит текст. Если поле ввода создается со стилем ES_PASWORD, то вводимые символы по умолчанию заменяются при вводе звездочками (*). |
void GetRect (LPRECT lpRect) const; | Получает прямоугольник форматирования поля ввода, то есть прямоугольник, ограничивающий текст. Он не зависит от размеров поля ввода. |
DWORD GetSel() const; void GetSel (int& nStartChar, int& nEndChar) const; |
Получает начальную и конечную позиции символов текущего выделения (если таковое имеется) в поле ввода, через возвращаемое значение или через параметры. Параметры:
|
void LimitText (int nChars = 0); | Ограничивает длину текста, который пользователь может ввести в поле ввода. LimitText() изменяет только длину текста, который может ввести пользователь, и не оказывает никакого влияния ни на уже введенный текст, ни на длину текста, копируемого в поле ввода с помощы функции-члена SetWindowText() класса CWnd. Если приложение использует функцию SetWindowText(), для того чтобы поместить текст больше, чем установлено при вызове функции LimitText(), пользователь может удалить любой текст в интерфейсном элементе путем непосредственного редактирования. Однако ограничение длины текста предотвратит замещение существующего текста на новый, если только длина текста не была сделана меньше установленного предела при удалении текущего выделения. |
void LineScroll (int nLines, int Chars = 0); | Применяется для прокрутки текста в многострочном поле ввода. Эта функция-член работает только для многострочных интерфейсных элементов редактирования.
|
void Paste(); | используется для вставки данных из буфера обмена в объект класса CEdit, начиная с текущего положения курсора. Данные вставляются только в том случае, если они хранятся в буфере обмена в формате CF_TEXT |
CPoint PosFromChar (UINT nChar) const; | Определяет положение (от левого верхнего угла) данного символа в данном объекте класса CEdit. Символ задается с помощью отсчитываемого от нуля индекса. Если значение параметра nChar больше, чем индекс последнего символа в данном объекте класса CEdit, то возвращаемое значение задает координаты символьной позиции, следующей непосредственно за последним символом. Замечание: Эта функция доступна только в Windows 95. |
void ReplaceSel (LPCTSTR lpszNewText, BOOL bCanUndo = FALSE); | Заменяет текущее выделение в поле ввода текстом, указанным в параметре lpszNewText. Замещается только участок текста в поле ввода. Если вы хотите заместить весь текст, используйте функцию-член CWnd::SetWindowText(). Если текущего выделения нет, то новый текст вставляется в текущее положение курсора.
|
void SetHandle (HLOCAL hBuffer); | Устанавливает дескриптор локальной памяти, используемый многострочным полем ввода. Интерфейсный элемент будет использовать этот буфер для хранения выводимого в данный момент на экран текста, вместо того чтобы выделять свой собственный. Эта функция-член выполняется только для многострочного поля ввода. Прежде чем интерфейсный элемент установит новый дескриптор памяти, необходимо получить дескриптор текущего буфера памяти с помощью функции-члена GetHahdle() и освободить эту память, используя функцию Windows Local Free. |
void LimitText (UINT nMax); | Устанавливает предельный размер текста для данного объекта класса CEdit, то есть максимальный объем текста (в байтах), который может принять поле ввода. |
void SetMargins (UINT nLeft, UINT nRight); | Устанавливает размеры левого и правого полей данного поля ввода. Замечание: Эта функция доступна только в Windows 95.
|
void SetModify (BOOL bModified = TRUE); | Устанавливает или снимает флаг модификации в поле ввода, показывающий, был ли изменен текст в интерфейсном элементе. Флаг модификации автоматически устанавливается всякий раз при изменении текста. Его значение можно определить с помощью функции-члена GetModify(). |
void SetPasswordChar (TCHAR ch); | Устанавливает или отменяет вывод на экран символов пароля при наборе пользователем текста. Когда вывод установлен, на экране отображается символ, который набирает пользователь. Эта функция-член не оказывает влияния на многострочное поле ввода. Когда вызывается функция-член SetPasswordChar(), объект класса CEdit перерисовывает все видимые символы, используя символ, заданный в параметре ch. |
BOOL SetReadOnly (BOOL bReadOnly = TRUE); | Ограничивает доступ к полю ввода правами на чтение. Текущую установку можно определить, проверив флаг ES_READONLY, значение которого возвращается функцией CWnd::GetStyle(). |
void SetRect (LPCRECT lpRect); | Устанавливает размеры прямоугольника, заданного указанными координатами. Эта функция-член выполняется только для многострочных полей ввода.
|
SetRectNP (LPCRECT lpRect); | Исользуется для установки прямоугольника форматирования многострочного поля ввода, то есть прямоугольника, ограничивающего текст. Он не зависит от размеров интерфейсного элемента. Действие функции SetRectNP() аналогично действию функции SetRect() за исключением того, что поле ввода не перерисовывается. Когда поле ввода создается впервые, размеры прямоугольника форматирования совпадают с размерами пользовательской области окна поля ввода. Вызывая функцию-член SetRectNP(), приложение может сделать прямоугольник форматирования больше или меньше поля ввода. |
void SetSel (DWORD dwSelection, BOOL bNoScroll = FALSE); void SetSel (int nStartChar, int nEndChar, BOOL bNpScroll = False); |
Выделяет диапазон символов в поле ввода. Параметры:
|
void SetTabStops(); BOOL SetTabStops (const int& cxEachStop); BOOL SetTabStops (int nTabStops, LPRINT rgTabStops); |
Устанавливает позиции табуляции в многострочном поле ввода. При копировании текста в такой интерфейсный элемент символы табуляции вызывают появление пробела длиной до следующей позиции табуляции.
|
BOOL Undo(); | Отменяет последнюю операцию в поле ввода.
|
Со следующего шага мы начнем рассмотривать создание многопоточных приложений.