Класс CEdit

Предоставляет функции элемента управления редактированием Windows.

Синтаксис

class CEdit : public CWnd

Участники

Открытые конструкторы

Имя Описание
CEdit::CEdit CEdit Создает объект элемента управления.

Открытые методы

Имя Описание
CEdit::CanUndo Определяет, можно ли отменить операцию редактирования.
CEdit::CharFromPos Извлекает индексы строк и символов для символа, ближайшего к указанной позиции.
CEdit::Clear Удаляет (очищает) текущий выбор (при наличии) в элементе управления редактирования.
CEdit::Copy Копирует текущий выбор (если таковой) в элемент управления редактирования в буфер обмена в CF_TEXT формате.
CEdit::Create Создает элемент управления редактирования Windows и присоединяет его к объекту CEdit .
CEdit::Cut Удаляет (вырезает) текущий выделенный фрагмент (если таковой) в элементе управления редактирования и копирует удаленный текст в буфер обмена в CF_TEXT формате.
CEdit::EmptyUndoBuffer Сбрасывает (очищает) флаг отмены элемента управления редактирования.
CEdit::FmtLines Задает включение символов обратимого разрыва строк в элемент управления редактирования с несколькими строками или выключение.
CEdit::GetCueBanner Извлекает текст, отображаемый в виде подсказки текста или подсказки, в элементе управления редактирования, если элемент управления пуст и не имеет фокуса.
CEdit::GetFirstVisibleLine Определяет самую верхнюю видимую строку в элементе управления редактированием.
CEdit::GetHandle Извлекает дескриптор памяти, выделенной в настоящее время для элемента управления редактированием с несколькими строками.
CEdit::GetHighlight Возвращает индексы начальных и конечных символов в диапазоне текста, выделенного в текущем элементе управления редактирования.
CEdit::GetLimitText Получает максимальный объем текста, который CEdit может содержаться.
CEdit::GetLine Извлекает строку текста из элемента управления редактирования.
CEdit::GetLineCount Извлекает количество строк в элементе управления редактирования с несколькими строками.
CEdit::GetMargins Возвращает поля слева и справа для этого CEdit.
CEdit::GetModify Определяет, было ли изменено содержимое элемента управления редактирования.
CEdit::GetPasswordChar Извлекает символ пароля, отображаемый в элементе управления редактирования, когда пользователь вводит текст.
CEdit::GetRect Возвращает прямоугольник форматирования элемента управления редактирования.
CEdit::GetSel Возвращает первые и последние позиции символов текущего выделения в элементе управления редактированием.
CEdit::HideBalloonTip Скрывает любой совет воздушных шаров, связанный с текущим элементом управления редактирования.
CEdit::LimitText Ограничивает длину текста, который пользователь может ввести в элемент управления редактированием.
CEdit::LineFromChar Извлекает номер строки строки, содержащей указанный индекс символов.
CEdit::LineIndex Извлекает символьный индекс строки в элементе управления редактирования с несколькими строками.
CEdit::LineLength Извлекает длину строки в элементе управления редактированием.
CEdit::LineScroll Прокручивает текст элемента управления редактирования с несколькими строками.
CEdit::P aste Вставляет данные из буфера обмена в элемент управления редактирования в текущей позиции курсора. Данные вставляются только в том случае, если буфер обмена содержит данные в CF_TEXT формате.
CEdit::P osFromChar Извлекает координаты левого верхнего угла указанного символьного индекса.
CEdit::ReplaceSel Заменяет текущий выделенный фрагмент в элементе управления редактированием указанным текстом.
CEdit::SetCueBanner Задает текст, отображаемый в виде подсказки текста или подсказки, в элементе управления редактирования, если элемент управления пуст и не имеет фокуса.
CEdit::SetHandle Задает дескриптор локальной памяти, которая будет использоваться элементом управления редактирования с несколькими строками.
CEdit::SetHighlight Выделяет диапазон текста, отображаемого в текущем элементе управления редактирования.
CEdit::SetLimitText Задает максимальный объем текста, который CEdit может содержаться.
CEdit::SetMargins Задает для этого CEditполя слева и справа.
CEdit::SetModify Задает или очищает флаг изменения для элемента управления редактированием.
CEdit::SetPasswordChar Задает или удаляет символ пароля, отображаемый в элементе управления редактированием при вводе текста пользователем.
CEdit::SetReadOnly Задает состояние элемента управления редактирования только для чтения.
CEdit::SetRect Задает прямоугольник форматирования элемента управления редактирования с несколькими строками и обновляет элемент управления.
CEdit::SetRectNP Задает прямоугольник форматирования элемента управления редактирования с несколькими строками без перерисовки окна управления.
CEdit::SetSel Выбирает диапазон символов в элементе управления редактирования.
CEdit::SetTabStops Задает вкладку, остановленную в элементе управления редактирования с несколькими строками.
CEdit::ShowBalloonTip Отображает подсказку воздушных шаров, связанную с текущим элементом управления редактирования.
CEdit::Undo Отменяет последнюю операцию редактирования элемента управления.

Замечания

Элемент управления редактирования — это прямоугольное дочернее окно, в котором пользователь может ввести текст.

Вы можете создать элемент управления редактирования из шаблона диалогового окна или непосредственно в коде. В обоих случаях сначала вызовите конструктор CEdit для создания CEdit объекта, а затем вызовите функцию create member, чтобы создать элемент управления редактирования Windows и присоединить его к объекту CEdit .

Построение может быть одношаговным процессом в классе, производным от CEdit. Напишите конструктор для производного класса и вызов Create из конструктора.

CEditнаследует значительные функциональные возможности.CWnd Чтобы задать и получить текст из CEdit объекта, используйте CWnd функции-члены SetWindowText и GetWindowText, которые задают или получают все содержимое элемента управления редактирования, даже если это многострочного элемента управления. Текстовые строки в многострочного элемента управления разделяются последовательностью символов \r\n. Кроме того, если элемент управления редактированием является многострочного, получите и задайте часть текста элемента, вызвав функции-члены GetLine, SetSel, GetSel и ReplaceSel.CEdit

Если вы хотите обрабатывать сообщения уведомлений Windows, отправляемые элементом управления правки его родительскому элементу (как правило, классу, производным от CDialog), добавьте запись карты сообщений и функцию-обработчика сообщений в родительский класс для каждого сообщения.

Каждая запись карты сообщений принимает следующую форму:

ON_NOTIFICATION(id,memberFxn)

где id указывает идентификатор дочернего окна элемента управления редактирования, отправляющего уведомление, и memberFxn является именем родительской функции-члена, записанной для обработки уведомления.

Прототип функции родительского объекта выглядит следующим образом:

afx_msg void memberFxn ( );

Ниже приведен список потенциальных записей карты сообщений и описание случаев, в которых они будут отправлены родительскому элементу:

  • ON_EN_CHANGE пользователь предпринял действие, которое может изменить текст в элементе управления редактированием. В отличие от сообщения EN_UPDATE уведомления, это уведомление отправляется после обновления экрана Windows.

  • ON_EN_ERRSPACE Элемент управления редактирования не может выделить достаточно памяти для удовлетворения конкретного запроса.

  • ON_EN_HSCROLL пользователь щелкает горизонтальную полосу прокрутки элемента управления правки. Родительское окно уведомляется перед обновлением экрана.

  • ON_EN_KILLFOCUS Элемент управления редактирования теряет фокус ввода.

  • ON_EN_MAXTEXT Текущее вставка превысило указанное количество символов для элемента управления редактированием и усечено. Также отправляется, если элемент управления редактирования не имеет стиля ES_AUTOHSCROLL, а количество символов, которые необходимо вставить, превысит ширину элемента управления редактирования. Кроме того, если элемент управления редактированием не имеет стиля ES_AUTOVSCROLL, а общее количество строк, полученных из вставки текста, превысит высоту элемента управления редактирования.

  • ON_EN_SETFOCUS Отправлено, когда элемент управления редактирования получает фокус ввода.

  • ON_EN_UPDATE Элемент управления редактирования будет отображать измененный текст. Отправленный после форматирования текста элементом управления, но перед экраном текста, чтобы размер окна можно было изменить при необходимости.

  • ON_EN_VSCROLL Пользователь щелкает вертикальную полосу прокрутки элемента управления правки. Родительское окно уведомляется перед обновлением экрана.

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

При создании CEdit объекта из ресурса диалогового окна с помощью редактора CEdit диалоговых окон объект автоматически уничтожается, когда пользователь закрывает диалоговое окно.

Если вы создаете CEdit объект в окне, его также может потребоваться уничтожить. При создании CEdit объекта в стеке он автоматически уничтожается. Если вы создаете CEdit объект в куче с помощью new функции, необходимо вызвать delete объект, чтобы уничтожить его, когда пользователь завершает элемент управления редактирования Windows. При выделении памяти в CEdit объекте переопределите CEdit деструктор, чтобы удалить выделения.

Чтобы изменить определенные стили в элементе управления редактированием (например, ES_READONLY), необходимо отправлять определенные сообщения в элемент управления вместо использования ModifyStyle. См. статью "Изменить стили элементов управления" в пакете SDK для Windows.

Дополнительные сведения см. в CEditразделе "Элементы управления".

Иерархия наследования

CObject

CCmdTarget

CWnd

CEdit

Требования

Заголовок: afxwin.h

CEdit::CanUndo

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

BOOL CanUndo() const;

Возвращаемое значение

Ненулевое значение, если последняя операция редактирования может быть отменена вызовом Undo функции-члена; 0, если она не может быть отменена.

Замечания

Дополнительные сведения см. в EM_CANUNDO пакета SDK для Windows.

Пример

См. пример для CEdit::Undo.

CEdit::CEdit

Формирует объект CEdit.

CEdit();

Замечания

Создайте элемент управления редактирования Windows.

Пример

// Declare a local CEdit object.
CEdit myEdit;

// Declare a dynamic CEdit object.
CEdit *pmyEdit = new CEdit;

CEdit::CharFromPos

Вызовите эту функцию, чтобы получить отсчитываемые от нуля индексы строк и символов ближайшего к заданной точке в этом CEdit элементе управления

int CharFromPos(CPoint pt) const;

Параметры

пт
Координаты точки в клиентской области этого CEdit объекта.

Возвращаемое значение

Индекс символов в слове с низким порядком и строковый индекс в формате WORD с высоким порядком.

Замечания

Примечание.

Эта функция-член доступна начиная с Windows 95 и Windows NT 4.0.

Дополнительные сведения см. в EM_CHARFROMPOS в пакете SDK для Windows.

Пример

// CMyEdit inherits from CEdit
void CMyEdit::OnLButtonDown(UINT nFlags, CPoint point)
{
   int n = CharFromPos(point);
   int nLineIndex = HIWORD(n);
   int nCharIndex = LOWORD(n);
   TRACE(_T("nLineIndex = %d, nCharIndex = %d\r\n"), nLineIndex, nCharIndex);

   CEdit::OnLButtonDown(nFlags, point);
}

CEdit::Clear

Вызовите эту функцию, чтобы удалить (очистить) текущий выбор (при наличии) в элементе управления редактирования.

void Clear();

Замечания

Удаление, выполняеме Clear с помощью функции отмены, можно отменить, вызвав функцию-член Undo .

Чтобы удалить текущий выбор и поместить удаленное содержимое в буфер обмена, вызовите функцию "Вырезать ".

Дополнительные сведения см. в WM_CLEAR пакета SDK для Windows.

Пример

// Delete all of the text.
m_myEdit.SetSel(0, -1);
m_myEdit.Clear();

CEdit::Copy

Вызовите эту функцию, чтобы сделать текущий выбор (если таковой) в элементе управления редактирования в буфер обмена в CF_TEXT формате.

void Copy();

Замечания

Дополнительные сведения см. в WM_COPY пакета SDK для Windows.

Пример

// Copy all of the text to the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Copy();

CEdit::Create

Создает элемент управления редактирования Windows и присоединяет его к объекту CEdit .

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Параметры

dwStyle
Задает стиль элемента управления редактирования. Примените любое сочетание стилей редактирования к элементу управления.

rect
Указывает размер и позицию элемента управления редактирования. Может быть объектом или RECT структуройCRect.

pParentWnd
Указывает родительское окно элемента управления редактирования (обычно ).CDialog Он не должен иметь значение NULL.

Nid
Указывает идентификатор элемента управления редактирования.

Возвращаемое значение

Ненулевое значение, если инициализация выполнена успешно; в противном случае — 0.

Замечания

Вы создаете CEdit объект на двух шагах. Сначала вызовите CEdit конструктор и вызов Create, который создает элемент управления редактирования Windows и присоединяет его к объекту CEdit .

При Create выполнении Windows отправляет WM_NCCREATE, WM_NCCALCSIZE, WM_CREATE и WM_GETMINMAXINFO сообщения в элемент управления редактирования.

Эти сообщения обрабатываются по умолчанию функциями-членами OnNcCreate, OnNcCalcSize, OnCreate и OnGetMinMaxInfo в базовом CWnd классе. Чтобы расширить обработку сообщений по умолчанию, наследуйте класс, CEditдобавьте карту сообщений в новый класс и переопределите указанные выше функции-обработчика сообщений. Переопределите OnCreate, например, для выполнения необходимой инициализации для нового класса.

Примените следующие стили окна к элементу управления редактирования.

  • WS_CHILD Always

  • WS_VISIBLE обычно

  • WS_DISABLED редко

  • WS_GROUP Группирование элементов управления

  • WS_TABSTOP Включение элемента управления правки в порядок табуляции

Пример

// dynamically create an edit control
CEdit *pEdit = new CEdit;
pEdit->Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,
              CRect(10, 10, 100, 100), this, 1);

CEdit::Cut

Вызовите эту функцию, чтобы удалить (вырезать) текущий выделенный фрагмент (если таковой) в элементе управления редактирования и скопируйте удаленный текст в буфер обмена в CF_TEXT формате.

void Cut();

Замечания

Удаление, выполняеме Cut с помощью функции отмены, можно отменить, вызвав функцию-член Undo .

Чтобы удалить текущий выделенный фрагмент без размещения удаленного текста в буфер обмена, вызовите функцию "Очистить член".

Дополнительные сведения см. в WM_CUT пакета SDK для Windows.

Пример

// Delete all of the text and copy it to the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Cut();

CEdit::EmptyUndoBuffer

Вызовите эту функцию, чтобы сбросить (очистить) флаг отмены элемента управления редактирования.

void EmptyUndoBuffer();

Замечания

Теперь элемент управления редактирования не сможет отменить последнюю операцию. Флаг отмены устанавливается всякий раз, когда операция в элементе управления редактированием может быть отменена.

Флаг отмены автоматически очищается при вызове функций элемента SetWindowText или SetHandleCWnd .

Дополнительные сведения см. в EM_EMPTYUNDOBUFFER пакета SDK для Windows.

Пример

// Clear the undo buffer.
if (m_myEdit.CanUndo())
{
   m_myEdit.EmptyUndoBuffer();
   ASSERT(!m_myEdit.CanUndo());
}

CEdit::FmtLines

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

BOOL FmtLines(BOOL bAddEOL);

Параметры

bAddEOL
Указывает, следует ли вставлять символы обратимого разрыва строки. Значение TRUE вставляет символы; Значение FALSE удаляет их.

Возвращаемое значение

Ненулевое форматирование; в противном случае — 0.

Замечания

Обратимый разрыв линии состоит из двух возвращаемых каретки и строки, вставленной в конце строки, которая разбита из-за упаковки слов. Жесткий разрыв линии состоит из одного возврата каретки и канала линии. Линии, заканчивающиеся жестким разрывом линии, не затрагиваются FmtLines.

Windows будет отвечать только в том случае, если CEdit объект является элементом управления редактированием с несколькими строками.

FmtLinesвлияет только на буфер, возвращаемый GetHandle, и текст, возвращаемый WM_GETTEXT. Он не влияет на отображение текста в элементе управления редактированием.

Дополнительные сведения см. в EM_FMTLINES пакета SDK для Windows.

Пример

CString strText;

// Add soft line-break breaks.
m_myEdit.FmtLines(TRUE);

// Dump the text of the edit control.
m_myEdit.GetWindowText(strText);
AFXDUMP(strText);

// Remove soft line-break breaks.
m_myEdit.FmtLines(FALSE);

CEdit::GetCueBanner

Извлекает текст, отображаемый в виде подсказки текста или подсказки, в элементе управления редактирования при пустом элементе управления.

BOOL GetCueBanner(
    LPWSTR lpszText,
    int cchText) const;

CString GetCueBanner() const;

Параметры

lpszText
[out] Указатель на строку, содержащую текст подсказки.

cchText
[in] Количество полученных символов. Это число включает в себя завершающий символ NULL.

Возвращаемое значение

Для первой перегрузки значение TRUE, если метод выполнен успешно; в противном случае ЗНАЧЕНИЕ FALSE.

Для второй перегрузки CString, содержащий текст подсказки, если метод выполнен успешно; в противном случае пустая строка ("").

Замечания

Этот метод отправляет сообщение EM_GETCUEBANNER , описанное в пакете SDK для Windows. Дополнительные сведения см. в макросе Edit_GetCueBannerText .

CEdit::GetFirstVisibleLine

Вызовите эту функцию, чтобы определить самую верхнюю видимую строку в элементе управления редактированием.

int GetFirstVisibleLine() const;

Возвращаемое значение

Отсчитываемый от нуля индекс самой видимой линии верхнего уровня. Для элементов управления редактированием в одной строке возвращаемое значение равно 0.

Замечания

Дополнительные сведения см. в EM_GETFIRSTVISIBLELINE пакета SDK для Windows.

Пример

int nFirstVisible = m_myEdit.GetFirstVisibleLine();

// Scroll the edit control so that the first visible line
// is the first line of text.
if (nFirstVisible > 0)
{
   m_myEdit.LineScroll(-nFirstVisible, 0);
}

CEdit::GetHandle

Вызовите эту функцию, чтобы получить дескриптор памяти, выделенной для элемента управления редактированием с несколькими строками.

HLOCAL GetHandle() const;

Возвращаемое значение

Локальный дескриптор памяти, определяющий буфер, содержащий содержимое элемента управления редактирования. Если возникает ошибка, например отправка сообщения в элемент управления редактирования с одной строкой, возвращаемое значение равно 0.

Замечания

Дескриптор является локальным дескриптором памяти и может использоваться любой из функций локальной памяти Windows, которые принимают локальный дескриптор памяти в качестве параметра.

GetHandle обрабатывается только элементами управления редактирования с несколькими строками.

Вызов GetHandle элемента управления редактирования с несколькими строками в диалоговом окне только в том случае, если диалоговое окно было создано с набором флагов стиля DS_LOCALEDIT. Если стиль DS_LOCALEDIT не задан, вы по-прежнему получите ненулевое возвращаемое значение, но вы не сможете использовать возвращаемое значение.

Примечание.

GetHandle не будет работать с Windows 95/98. При вызове GetHandle в Windows 95/98 он вернет ЗНАЧЕНИЕ NULL. GetHandle будет работать как описано в Windows NT, версиях 3.51 и более поздних версиях.

Дополнительные сведения см. в EM_GETHANDLE в пакете SDK для Windows.

Пример

HLOCAL h = m_myEdit.GetHandle();
LPCTSTR lpszText = (LPCTSTR)::LocalLock(h);

// Dump the text of the edit control.
AFXDUMP(lpszText);

::LocalUnlock(h);

CEdit::GetHighlight

Возвращает индексы первых и последних символов в диапазоне текста, выделенного в текущем элементе управления редактированием.

BOOL GetHighlight(
    int* pichStart,
    int* pichEnd) const;

Параметры

pichStart
[out] Отсчитываемый от нуля индекс первого символа в диапазоне выделенного текста.

pichEnd
[out] Отсчитываемый от нуля индекс последнего символа в диапазоне выделенного текста.

Возвращаемое значение

ЗНАЧЕНИЕ TRUE, если этот метод выполнен успешно; в противном случае — ЗНАЧЕНИЕ FALSE.

Замечания

Этот метод отправляет сообщение EM_GETHILITE , описанное в пакете SDK для Windows. GetHighlight Оба SetHighlight и в настоящее время включены только для сборок ЮНИКОДа.

CEdit::GetLimitText

Вызовите эту функцию-член, чтобы получить ограничение текста для этого CEdit объекта.

UINT GetLimitText() const;

Возвращаемое значение

Текущее ограничение текста в TCHARs для этого CEdit объекта.

Замечания

Ограничение текста — это максимальный объем текста в TCHARs, который может принять элемент управления редактированием.

Примечание.

Эта функция-член доступна начиная с Windows 95 и Windows NT 4.0.

Дополнительные сведения см. в EM_GETLIMITTEXT пакета SDK для Windows.

Пример

CString strText(_T("I'm an edit control!"));
UINT nLength = strText.GetLength() * sizeof(TCHAR);

// Want the text limit to be at least the size of the new string.
if (m_myEdit.GetLimitText() < nLength)
   m_myEdit.SetLimitText(nLength);

m_myEdit.SetWindowText(strText);

CEdit::GetLine

Вызовите эту функцию, чтобы получить строку текста из элемента управления редактирования и помещать ее в lpszBuffer.

int GetLine(
    int nIndex,
    LPTSTR lpszBuffer) const;

int GetLine(
    int nIndex,
    LPTSTR lpszBuffer,
    int nMaxLength) const;

Параметры

Nindex
Указывает номер строки для получения из элемента управления редактирования с несколькими строками. Номера строк основаны на нулях; Значение 0 указывает первую строку. Этот параметр игнорируется элементом управления редактирования с одной строкой.

lpszBuffer
Указывает на буфер, получающий копию строки. Первое слово буфера должно указывать максимальное количество TCHAR, которые можно скопировать в буфер.

nMaxLength
Указывает максимальное количество символов TCHAR, которые можно скопировать в буфер. GetLine помещает это значение в первое слово lpszBuffer перед вызовом в Windows.

Возвращаемое значение

Число фактически скопированных символов. Возвращаемое значение равно 0, если номер строки, указанный nIndex , больше числа строк в элементе управления редактированием.

Замечания

Скопированная строка не содержит символ завершения null.

Дополнительные сведения см. в EM_GETLINE пакета SDK для Windows.

Пример

См. пример CEdit ::GetLineCount.

CEdit::GetLineCount

Вызовите эту функцию, чтобы получить количество строк в элементе управления редактирования с несколькими строками.

int GetLineCount() const;

Возвращаемое значение

Целое число, содержащее количество строк в элементе управления редактирования с несколькими строками. Если текст не введен в элемент управления редактированием, возвращаемое значение равно 1.

Замечания

GetLineCount обрабатывается только элементами управления редактирования с несколькими строками.

Дополнительные сведения см. в EM_GETLINECOUNT в пакете SDK для Windows.

Пример

int i, nLineCount = m_myEdit.GetLineCount();
CString strText, strLine;
// Dump every line of text of the edit control.
for (i = 0; i < nLineCount; i++)
{
   // length of line i:
   int len = m_myEdit.LineLength(m_myEdit.LineIndex(i));
   m_myEdit.GetLine(i, strText.GetBuffer(len), len);
   strText.ReleaseBuffer(len);
   strLine.Format(_T("line %d: '%s'\n"), i, strText);
   AFXDUMP(strLine);
}

CEdit::GetMargins

Вызовите эту функцию-член, чтобы получить левые и правые поля этого элемента управления редактирования.

DWORD GetMargins() const;

Возвращаемое значение

Ширина левого поля в нижнем порядке WORD и ширина правого поля в word с высоким порядком.

Замечания

Поля измеряются в пикселях.

Примечание.

Эта функция-член доступна начиная с Windows 95 и Windows NT 4.0.

Дополнительные сведения см. в EM_GETMARGINS в пакете SDK для Windows.

Пример

См. пример для CEditView::GetEditCtrl.

CEdit::GetModify

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

BOOL GetModify() const;

Возвращаемое значение

Ненулевое значение, если содержимое элемента управления редактированием было изменено; Значение 0, если они остались неизменными.

Замечания

Windows поддерживает внутренний флаг, указывающий, было ли изменено содержимое элемента управления редактированием. Этот флаг очищается при первом создании элемента управления редактирования, а также может быть снят путем вызова функции-члена SetModify .

Дополнительные сведения см. в EM_GETMODIFY в пакете SDK для Windows.

Пример

// Reset the modified state only if my edit has been modified.
if (m_myEdit.GetModify())
   m_myEdit.SetModify(FALSE);

CEdit::GetPasswordChar

Вызовите эту функцию, чтобы получить символ пароля, отображаемый в элементе управления редактированием при вводе текста пользователем.

TCHAR GetPasswordChar() const;

Возвращаемое значение

Указывает символ, отображаемый вместо символа, введенного пользователем. Возвращаемое значение равно NULL, если символ пароля не существует.

Замечания

При создании элемента управления редактирования с помощью стиля ES_PASSWORD библиотека DLL, поддерживающая элемент управления, определяет символ пароля по умолчанию. Манифест или метод InitCommonControlsEx определяет, какая библиотека DLL поддерживает элемент управления редактированием. Если user32.dll поддерживает элемент управления редактированием, символ пароля по умолчанию — ASTERISK ('*,U+002A). Если comctl32.dll версии 6 поддерживает элемент управления редактированием, символ по умолчанию — BLACK CIRCLE ('', U+25CF). Дополнительные сведения о том, какие библиотеки DLL и версии поддерживают общие элементы управления, см. в разделе "Версии оболочки" и "Общие элементы управления".

Этот метод отправляет сообщение EM_GETPASSWORDCHAR , описанное в пакете SDK для Windows.

Пример

// Turn on the password mode.
m_myEdit.SetPasswordChar('*');
ASSERT(m_myEdit.GetStyle() & ES_PASSWORD);
ASSERT(m_myEdit.GetPasswordChar() == '*');

CEdit::GetRect

Вызовите эту функцию, чтобы получить прямоугольник форматирования элемента управления редактированием.

void GetRect(LPRECT lpRect) const;

Параметры

lpRect
Указывает на RECT структуру, которая получает прямоугольник форматирования.

Замечания

Прямоугольник форматирования — это ограничивающий прямоугольник текста, который не зависит от размера окна редактирования.

Прямоугольник форматирования элемента управления редактирования с несколькими строками можно изменить с помощью функций-членов SetRect и SetRectNP .

Дополнительные сведения см. в EM_GETRECT пакета SDK для Windows.

Пример

См. пример CEdit ::LimitText.

CEdit::GetSel

Вызовите эту функцию, чтобы получить начальные и конечные позиции символов текущего выделения (если таковые имеются) в элементе управления редактирования с помощью возвращаемого значения или параметров.

DWORD GetSel() const;

void GetSel(
    int& nStartChar,
    int& nEndChar) const;

Параметры

nStartChar
Ссылка на целое число, которое получит позицию первого символа в текущем выборе.

nEndChar
Ссылка на целое число, которое получит позицию первого неизбираемого символа в конце текущего выбора.

Возвращаемое значение

Версия, возвращающая DWORD, возвращает значение, содержащее начальную позицию в слове с низким порядком и позицию первого неизбираемого символа после окончания выделения в слове высокого порядка.

Замечания

Дополнительные сведения см. в EM_GETSEL пакета SDK для Windows.

Пример

// Set the selection to be all characters after the current selection.
DWORD dwSel = m_myEdit.GetSel();
m_myEdit.SetSel(HIWORD(dwSel), -1);

CEdit::HideBalloonTip

Скрывает любой совет воздушных шаров, связанный с текущим элементом управления редактирования.

BOOL HideBalloonTip();

Возвращаемое значение

ЗНАЧЕНИЕ TRUE, если этот метод выполнен успешно; в противном случае — ЗНАЧЕНИЕ FALSE.

Замечания

Эта функция отправляет сообщение EM_HIDEBALLOONTIP , описанное в пакете SDK для Windows.

CEdit::LimitText

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

void LimitText(int nChars = 0);

Параметры

nChars
Указывает длину (в TCHARs) текста, в который пользователь может ввести. Если этот параметр равен 0, длина текста имеет значение UINT_MAX байтов. Это поведение принимается по умолчанию.

Замечания

Изменение ограничения текста ограничивает только текст, который пользователь может ввести. Он не влияет на любой текст, уже размещенный в элементе управления редактирования, и не влияет на длину текста, скопированного в элемент управления редактирования функцией-членом SetWindowText.CWnd Если приложение использует SetWindowText функцию для размещения большего текста в элементе управления редактированием, чем указано в вызове LimitText, пользователь может удалить любой текст в элементе управления редактирования. Однако ограничение текста не позволит пользователю заменить существующий текст новым текстом, если удаление текущего выделенного фрагмента не приведет к снижению предела текста.

Примечание.

В Win32 (Windows NT и Windows 95/98) SetLimitText заменяет эту функцию.

Дополнительные сведения см. в EM_LIMITTEXT пакета SDK для Windows.

Пример

// Limit the number of characters to be the maximum number visible.

// Get the text metrics for the edit; needed for the
// average character width.
TEXTMETRIC tm;
CDC *pDC = m_myEdit.GetDC();
pDC->GetTextMetrics(&tm);
m_myEdit.ReleaseDC(pDC);

CRect r;
m_myEdit.GetRect(&r);
m_myEdit.LimitText(r.Width() / tm.tmAveCharWidth);

CEdit::LineFromChar

Вызовите эту функцию, чтобы получить номер строки, содержащей указанный индекс символов.

int LineFromChar(int nIndex = -1) const;

Параметры

Nindex
Содержит отсчитываемое от нуля значение индекса для нужного символа в тексте элемента управления редактирования или содержит -1. Если значение nIndex равно -1, оно указывает текущую строку, то есть строку, содержащую курсор.

Возвращаемое значение

Отсчитываемый от нуля номер строки, содержащей индекс символов, заданный nIndex. Если значение nIndex равно -1, возвращается число строки, содержащей первый символ выделенного фрагмента. Если выбор отсутствует, возвращается текущий номер строки.

Замечания

Индекс символов — это число символов с начала элемента управления редактированием.

Эта функция-член используется только элементами управления редактирования с несколькими строками.

Дополнительные сведения см. в EM_LINEFROMCHAR пакета SDK для Windows.

Пример

// The index of the char to get information on.
int nIndex = 4;
CString strText;

m_myEdit.GetWindowText(strText);
strText = strText.Mid(nIndex, 1);

// Get the text extent of the character.
CDC *pDC = m_myEdit.GetDC();
CSize sz = pDC->GetTextExtent(strText);
m_myEdit.ReleaseDC(pDC);

CPoint pt = m_myEdit.PosFromChar(nIndex);

// Dump the index, character, line number, and character bounds.
TRACE(_T("nIndex = %d, character = %c, line = %d, bounds = ")
      _T("{%d, %d, %d, %d}\r\n"),
      nIndex, strText[0], m_myEdit.LineFromChar(nIndex),
      pt.x /* left */, pt.y /* top */,
      pt.x + sz.cx /* right */, pt.y + sz.cy /* bottom */);

CEdit::LineIndex

Вызовите эту функцию, чтобы получить символьный индекс строки в элементе управления редактирования с несколькими строками.

int LineIndex(int nLine = -1) const;

Параметры

nLine
Содержит значение индекса для нужной строки в тексте элемента управления редактирования или содержит -1. Если nLine имеет значение -1, он указывает текущую строку, то есть строку, содержащую курсор.

Возвращаемое значение

Символьный индекс строки, указанной в nLine или -1, если указанный номер строки больше числа строк в элементе управления редактирования.

Замечания

Индекс символов — это число символов с начала элемента управления редактирования до указанной строки.

Эта функция-член обрабатывается только элементами управления редактирования с несколькими строками.

Дополнительные сведения см. в EM_LINEINDEX пакета SDK для Windows.

Пример

// The string for replacing.
CString strString(_T("Hi, we're the replacements."));
int nBegin, nEnd;

// Replace the second line, if it exists, of the edit control
// with the text strString.
if ((nBegin = m_myEdit.LineIndex(1)) != -1)
{
   nEnd = nBegin + m_myEdit.LineLength(nBegin);
   m_myEdit.SetSel(nBegin, nEnd);
   m_myEdit.ReplaceSel(strString);
}

CEdit::LineLength

Извлекает длину строки в элементе управления редактированием.

int LineLength(int nLine = -1) const;

Параметры

nLine
Отсчитываемый от нуля индекс символа в строке, длина которой должна быть извлечена. По умолчанию используется значение 1.

Возвращаемое значение

Для элементов управления редактированием в одной строке возвращаемое значение — длина текста в элементе управления редактирования в TCHARs.

Для элементов управления многостроек редактирования возвращаемое значение — длина строки, указанной параметром nLine , в TCHARs. Длина текста ANSI — это количество байтов в строке; Для текста Юникода длина — это количество символов в строке. Длина не включает символ возврата каретки в конце строки.

Если параметр nLine больше числа символов в элементе управления, возвращаемое значение равно нулю.

Если параметр nLine равен -1, возвращаемое значение — это число неизбранных символов в строках, содержащих выбранные символы. Например, если выделение расширяется от четвертого символа одной строки до восьмого символа из конца следующей строки, возвращаемое значение равно 10. То есть три символа на первой строке и семь на следующей.

Дополнительные сведения о типе TCHAR см. в строке TCHAR в таблице в типах данных Windows.

Замечания

Этот метод поддерживается сообщением EM_LINELENGTH , которое описано в пакете SDK для Windows.

Пример

См. пример CEdit ::LineIndex.

CEdit::LineScroll

Вызовите эту функцию для прокрутки текста элемента управления редактирования с несколькими строками.

void LineScroll(
    int nLines,
    int nChars = 0);

Параметры

nLines
Указывает количество строк для прокрутки по вертикали.

nChars
Указывает количество позиций символов для горизонтальной прокрутки. Это значение игнорируется, если элемент управления редактирования имеет стиль ES_RIGHT или ES_CENTER.

Замечания

Эта функция-член обрабатывается только элементами управления редактирования с несколькими строками.

Элемент управления редактирования не прокручивается по вертикали после последней строки текста в элементе управления редактирования. Если текущая строка плюс количество строк, указанных nLines , превышает общее количество строк в элементе управления редактированием, значение корректируется таким образом, чтобы последняя строка элемента управления редактирования прокручивалась до верхней части окна правки.

LineScroll можно использовать для прокрутки по горизонтали до последнего символа любой строки.

Дополнительные сведения см. в EM_LINESCROLL пакета SDK для Windows.

Пример

См. пример CEdit ::GetFirstVisibleLine.

CEdit::P aste

Вызовите эту функцию, чтобы вставить данные из буфера обмена в CEdit точку вставки.

void Paste();

Замечания

Данные вставляются только в том случае, если буфер обмена содержит данные в CF_TEXT формате.

Дополнительные сведения см. в WM_PASTE пакета SDK для Windows.

Пример

// Replace all of the text with the text in the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Paste();

CEdit::P osFromChar

Вызовите эту функцию, чтобы получить позицию (верхний левый угол) заданного символа в этом CEdit объекте.

CPoint PosFromChar(UINT nChar) const;

Параметры

Nchar
Отсчитываемый от нуля индекс указанного символа.

Возвращаемое значение

Координаты левого верхнего угла символа, заданного nChar.

Замечания

Символ задается путем указания его отсчитываемого от нуля значения индекса. Если nChar больше индекса последнего символа в этом объекте, возвращаемое значение указывает координаты позиции символа только после последнего символа в этом CEditCEdit объекте.

Примечание.

Эта функция-член доступна начиная с Windows 95 и Windows NT 4.0.

Дополнительные сведения см. в EM_POSFROMCHAR пакета SDK для Windows.

Пример

См. пример CEdit ::LineFromChar.

CEdit::ReplaceSel

Вызовите эту функцию для замены текущего выделения в элементе управления редактирования текстом, указанным lpszNewText.

void ReplaceSel(LPCTSTR lpszNewText, BOOL bCanUndo = FALSE);

Параметры

lpszNewText
Указывает на строку, завершающую значение NULL, содержащую замещающий текст.

bCanUndo
Чтобы указать, что эта функция может быть отменена, задайте для этого параметра значение TRUE. Значение по умолчанию — FALSE.

Замечания

Заменяет только часть текста в элементе управления редактированием. Если вы хотите заменить весь текст, используйте функцию члена CWnd::SetWindowText .

Если нет текущего выделения, замещающий текст вставляется в текущее расположение курсора.

Дополнительные сведения см. в EM_REPLACESEL пакета SDK для Windows.

Пример

См. пример CEdit ::LineIndex.

CEdit::SetCueBanner

Задает текст, отображаемый в виде подсказки текста или подсказки, в элементе управления редактирования при пустом элементе управления.

BOOL SetCueBanner(LPCWSTR lpszText);

BOOL SetCueBanner(
    LPCWSTR lpszText,
    BOOL fDrawWhenFocused = FALSE);

Параметры

lpszText
[in] Указатель на строку, содержащую подсказку для отображения в элементе управления редактированием.

fDrawWhenFocused
[in] Если значение FALSE, баннер подсказки не рисуется, когда пользователь щелкает элемент управления редактированием и дает элемент управления фокус.

Если значение TRUE, баннер подсказки рисуется даже при наличии фокуса элемента управления. Баннер подсказки исчезает, когда пользователь начинает вводить элемент управления.

Значение по умолчанию — FALSE.

Возвращаемое значение

ЗНАЧЕНИЕ TRUE, если метод выполнен успешно; в противном случае ЗНАЧЕНИЕ FALSE.

Замечания

Этот метод отправляет сообщение EM_SETCUEBANNER , описанное в пакете SDK для Windows. Дополнительные сведения см. в макросе Edit_SetCueBannerTextFocused .

Пример

В следующем примере показан метод CEdit::SetCueBanner .

m_cedit.SetCueBanner(_T("First, enter text here..."), TRUE);

CEdit::SetHandle

Вызовите эту функцию, чтобы задать дескриптор локальной памяти, которая будет использоваться элементом управления редактирования с несколькими строками.

void SetHandle(HLOCAL hBuffer);

Параметры

hBuffer
Содержит дескриптор локальной памяти. Этот дескриптор должен быть создан предыдущим вызовом функции LocalAlloc Windows с помощью флага LMEM_MOVEABLE. Предполагается, что память содержит строку, завершаемую значением NULL. Если это не так, первый байт выделенной памяти должен иметь значение 0.

Замечания

Затем элемент управления редактирования будет использовать этот буфер для хранения отображаемого в данный момент текста вместо выделения собственного буфера.

Эта функция-член обрабатывается только элементами управления редактирования с несколькими строками.

Прежде чем приложение задает новый дескриптор памяти, он должен использовать функцию-член GetHandle , чтобы получить дескриптор текущего буфера памяти и освободить память с помощью LocalFree функции Windows.

SetHandleочищает буфер отмены (функция-член CanUndo возвращает значение 0) и флаг внутреннего изменения (функция-член GetModify возвращает значение 0). Окно управления редактированием перезабрано.

Эту функцию-член можно использовать в элементе управления редактирования с несколькими строками в диалоговом окне, только если вы создали диалоговое окно с набором флагов стиля DS_LOCALEDIT.

Примечание.

GetHandle не будет работать с Windows 95/98. При вызове GetHandle в Windows 95/98 он вернет ЗНАЧЕНИЕ NULL. GetHandle будет работать как описано в Windows NT, версиях 3.51 и более поздних версиях.

Дополнительные сведения см. в разделе EM_SETHANDLE, LocalAlloc и LocalFree в пакете SDK для Windows.

Пример

// The string to set in the edit control.
CString strString(_T("George Frideric"));

// Initialize the new local handle.
size_t cbSize = (strString.GetLength() + 1) * sizeof(TCHAR);
HLOCAL h = ::LocalAlloc(LHND, cbSize);
LPTSTR lpszText = (LPTSTR)::LocalLock(h);
_tcsncpy_s(lpszText, cbSize / sizeof(TCHAR), strString, _TRUNCATE);
::LocalUnlock(h);

// Free the current text handle of the edit control.
::LocalFree(m_myEdit.GetHandle());

// Set the new text handle.
m_myEdit.SetHandle(h);

CEdit::SetHighlight

Выделяет диапазон текста, отображаемого в текущем элементе управления редактирования.

void SetHighlight(
    int ichStart,
    int ichEnd);

Параметры

ichStart
[in] Отсчитываемый от нуля индекс первого символа в диапазоне текста для выделения.

ichEnd
[in] Отсчитываемый от нуля индекс последнего символа в диапазоне текста для выделения.

Замечания

Этот метод отправляет сообщение EM_SETHILITE , описанное в пакете SDK для Windows. Этот метод отправляет сообщение EM_SETHILITE , описанное в пакете SDK для Windows. GetHighlight Оба SetHighlight и включены только для сборок ЮНИКОДа.

CEdit::SetLimitText

Вызовите эту функцию-член, чтобы задать ограничение текста для этого CEdit объекта.

void SetLimitText(UINT nMax);

Параметры

nMax
Новое ограничение текста в символах.

Замечания

Ограничение текста — это максимальный объем текста в символах, которые элемент управления редактирования может принимать.

Изменение ограничения текста ограничивает только текст, который пользователь может ввести. Он не влияет на любой текст, уже размещенный в элементе управления редактирования, и не влияет на длину текста, скопированного в элемент управления редактирования функцией-членом SetWindowText.CWnd Если приложение использует SetWindowText функцию для размещения большего текста в элементе управления редактированием, чем указано в вызове LimitText, пользователь может удалить любой текст в элементе управления редактирования. Однако ограничение текста не позволит пользователю заменить существующий текст новым текстом, если удаление текущего выделенного фрагмента не приведет к снижению предела текста.

Эта функция заменяет LimitText в Win32.

Дополнительные сведения см. в EM_SETLIMITTEXT в пакете SDK для Windows.

Пример

См. пример для CEditView::GetEditCtrl.

CEdit::SetMargins

Вызовите этот метод, чтобы задать левые и правые поля этого элемента управления редактирования.

void SetMargins(
    UINT nLeft,
    UINT nRight);

Параметры

nLeft
Ширина нового левого поля в пикселях.

nRight
Ширина нового правого поля в пикселях.

Замечания

Примечание.

Эта функция-член доступна начиная с Windows 95 и Windows NT 4.0.

Дополнительные сведения см. в EM_SETMARGINS пакета SDK для Windows.

Пример

См. пример для CEditView::GetEditCtrl.

CEdit::SetModify

Вызовите эту функцию, чтобы задать или очистить измененный флаг для элемента управления редактированием.

void SetModify(BOOL bModified = TRUE);

Параметры

bModified
Значение TRUE указывает, что текст был изменен, а значение FALSE указывает, что оно не изменено. По умолчанию измененный флаг устанавливается.

Замечания

Измененный флаг указывает, был ли изменен текст в элементе управления редактирования. Он автоматически устанавливается, когда пользователь изменяет текст. Его значение можно получить с помощью функции-члена GetModify .

Дополнительные сведения см. в EM_SETMODIFY пакета SDK для Windows.

Пример

См. пример CEdit ::GetModify.

CEdit::SetPasswordChar

Вызовите эту функцию, чтобы задать или удалить символ пароля, отображаемый в элементе управления редактирования при вводе текста пользователя.

void SetPasswordChar(TCHAR ch);

Параметры

Ch
Указывает символ, отображаемый вместо символа, введенного пользователем. Если значение ch равно 0, отображаются фактические символы, введенные пользователем.

Замечания

Если задан символ пароля, этот символ отображается для каждого символа, который типы пользователей.

Эта функция-член не влияет на элемент управления редактирования с несколькими строками.

SetPasswordChar При вызове CEdit функции-члена перераскроет все видимые символы с помощью символа, указанного в ch.

Если элемент управления редактированием создается с помощью стиля ES_PASSWORD , символ пароля по умолчанию имеет звездочку ( *). Этот стиль удаляется, если SetPasswordChar вызывается с набором ch , равным 0.

Дополнительные сведения см. в EM_SETPASSWORDCHAR в пакете SDK для Windows.

Пример

// Turn off the password mode.
m_myEdit.SetPasswordChar(0);
ASSERT(!(m_myEdit.GetStyle() & ES_PASSWORD));

CEdit::SetReadOnly

Вызывает эту функцию, чтобы задать состояние элемента управления редактирования только для чтения.

BOOL SetReadOnly(BOOL bReadOnly = TRUE);

Параметры

bReadOnly
Указывает, следует ли задать или удалить состояние элемента управления редактирования только для чтения. Значение TRUE задает состояние только для чтения; Значение FALSE задает состояние для чтения и записи.

Возвращаемое значение

Ненулевое значение, если операция выполнена успешно или 0, если возникает ошибка.

Замечания

Текущий параметр можно найти, проверив флаг ES_READONLY в возвращаемом значении CWnd::GetStyle.

Дополнительные сведения см. в EM_SETREADONLY пакета SDK для Windows.

Пример

// Set the edit control to be read-only.
m_myEdit.SetReadOnly(TRUE);
ASSERT(m_myEdit.GetStyle() & ES_READONLY);

CEdit::SetRect

Вызовите эту функцию, чтобы задать размеры прямоугольника с помощью указанных координат.

void SetRect(LPCRECT lpRect);

Параметры

lpRect
Указывает на RECT структуру или CRect объект, указывающий новые измерения прямоугольника форматирования.

Замечания

Этот элемент обрабатывается только элементами управления редактирования с несколькими строками.

Используется SetRect для задания прямоугольника форматирования элемента управления редактирования с несколькими строками. Прямоугольник форматирования — это ограничивающий прямоугольник текста, который не зависит от размера окна редактирования. При первом создании элемента управления редактирования прямоугольник форматирования совпадает с клиентской областью окна редактирования. Используя SetRect функцию-член, приложение может сделать прямоугольник форматирования большим или меньшим, чем окно управления редактированием.

Если элемент управления редактирования не имеет полосы прокрутки, текст будет обрезан, а не упакован, если прямоугольник форматирования сделан больше окна. Если элемент управления редактирования содержит границу, прямоугольник форматирования уменьшается на размер границы. При настройке прямоугольника, возвращаемого GetRect функцией-членом, необходимо удалить размер границы перед передачей прямоугольника SetRectв .

При SetRect вызове текст элемента управления редактирования также переформатирован и перезаписывается.

Дополнительные сведения см. в EM_SETRECT пакета SDK для Windows.

Пример

// Flag indicating whether to redraw the edit control.
bool fRedraw = TRUE;

CRect r;

m_myEdit.GetRect(&r);

// Reduce the formatting rect of the edit control by
// 10 pixels on each side.
if ((r.Width() > 20) && (r.Height() > 20))
{
   r.DeflateRect(10, 10);

   if (fRedraw)
      m_myEdit.SetRect(&r);
   else
      m_myEdit.SetRectNP(&r);
}

CEdit::SetRectNP

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

void SetRectNP(LPCRECT lpRect);

Параметры

lpRect
Указывает на структуру RECT или CRect объект, указывающий новые размеры прямоугольника.

Замечания

Прямоугольник форматирования — это ограничивающий прямоугольник текста, который не зависит от размера окна редактирования.

SetRectNP идентичен функции-члену SetRect , за исключением того, что окно правки не перезабрано.

При первом создании элемента управления редактирования прямоугольник форматирования совпадает с клиентской областью окна редактирования. Вызывая SetRectNP функцию-член, приложение может сделать прямоугольник форматирования большим или меньшим, чем окно управления редактированием.

Если элемент управления редактирования не имеет полосы прокрутки, текст будет обрезан, а не упакован, если прямоугольник форматирования сделан больше окна.

Этот элемент обрабатывается только элементами управления редактирования с несколькими строками.

Дополнительные сведения см. в EM_SETRECTNP пакета SDK для Windows.

Пример

См. пример CEdit ::SetRect.

CEdit::SetSel

Вызовите эту функцию, чтобы выбрать диапазон символов в элементе управления редактированием.

void SetSel(
    DWORD dwSelection,
    BOOL bNoScroll = FALSE);

void SetSel(
    int nStartChar,
    int nEndChar,
    BOOL bNoScroll = FALSE);

Параметры

dwSelection
Указывает начальную позицию в слове с низким порядком и конечной позиции в слове высокого порядка. Если слово с низким порядком равно 0, а слово с высоким порядком — -1, выбирается весь текст в элементе управления редактирования. Если слово с низким порядком равно -1, удаляется любой текущий выбор.

bNoScroll
Указывает, следует ли прокручивать курсор в представление. Если значение FALSE, курсор прокручивается в представление. Если значение TRUE, курсор не прокручивается в представление.

nStartChar
Указывает начальную позицию. Если nStartChar имеет значение 0 и nEndChar равно -1, выбран весь текст в элементе управления редактированием. Если значение nStartChar равно -1, удаляется любой текущий выбор.

nEndChar
Указывает конечную позицию.

Замечания

Дополнительные сведения см. в EM_SETSEL пакета SDK для Windows.

Пример

См. пример для CEdit::GetSel.

CEdit::SetTabStops

Вызовите эту функцию, чтобы задать остановки вкладки в элементе управления редактирования с несколькими строками.

void SetTabStops();
BOOL SetTabStops(const int& cxEachStop);

BOOL SetTabStops(
    int nTabStops,
    LPINT rgTabStops);

Параметры

cxEachStop
Указывает, что остановки вкладок должны быть заданы на каждом блоке диалоговых окон cxEachStop .

nTabStops
Указывает количество остановок табуляции, содержащихся в rgTabStops. Это число должно быть больше 1.

rgTabStops
Указывает на массив целых чисел без знака, указывающий остановки табуляции в диалоговых единицах. Единица диалога — это горизонтальное или вертикальное расстояние. Одна горизонтальная единица диалога равна одной четверти текущей единицы базовой ширины диалогового окна, а 1 единица вертикального диалога равна одной восьмой единице текущей базовой высоты диалогового окна. Базовые единицы диалога вычисляются на основе высоты и ширины текущего системного шрифта. Функция GetDialogBaseUnits Windows возвращает текущие базовые единицы диалогового окна в пикселях.

Возвращаемое значение

Ненулевое значение, если заданы вкладки; в противном случае — 0.

Замечания

При копировании текста в элемент управления редактирования с несколькими строками любой символ табуляции в тексте приведет к созданию пробела до следующей остановки табуляции.

Чтобы задать размер вкладки по умолчанию в 32 блоках диалоговых окон, вызовите версию этой функции-члена без параметров. Чтобы задать размер вкладки, отличный от 32, вызовите версию с параметром cxEachStop . Чтобы задать для табуляции массив размеров, используйте версию с двумя параметрами.

Эта функция-член обрабатывается только элементами управления редактирования с несколькими строками.

SetTabStops не перераскроет окно редактирования автоматически. Если изменить вкладку для текста, уже в элементе управления редактированием, вызовите CWnd::InvalidateRect , чтобы перераспределять окно редактирования.

Дополнительные сведения см. в разделе EM_SETTABSTOPS и GetDialogBaseUnits в пакете SDK для Windows.

Пример

См. пример для CEditView::SetTabStops.

CEdit::ShowBalloonTip

Отображает подсказку воздушных шаров, связанную с текущим элементом управления редактирования.

BOOL ShowBalloonTip(PEDITBALLOONTIP pEditBalloonTip);

BOOL ShowBalloonTip(
    LPCWSTR lpszTitle,
    LPCWSTR lpszText,
    INT ttiIcon = TTI_NONE);

Параметры

pEditBalloonTip
[in] Указатель на структуру EDI ТБ ALLOONTIP, описывающую подсказку шара.

lpszTitle
[in] Указатель на строку Юникода, содержащую заголовок подсказки воздушных шаров.

lpszText
[in] Указатель на строку Юникода, содержащую текст подсказки воздушных шаров.

ttiIcon
[in] InT, указывающий тип значка для связывания с подсказкой воздушных шаров. Значение по умолчанию — TTI_NONE. Дополнительные сведения см. в ttiIcon элементе структуры EDI ТБ ALLOONTIP.

Возвращаемое значение

ЗНАЧЕНИЕ TRUE, если этот метод выполнен успешно; в противном случае — ЗНАЧЕНИЕ FALSE.

Замечания

Эта функция отправляет сообщение EM_SHOWBALLOONTIP , описанное в пакете SDK для Windows. Дополнительные сведения см. в макросе Edit_ShowBalloonTip .

Пример

Первый пример кода определяет переменную, m_ceditкоторая используется для доступа к текущему элементу управления редактирования. Эта переменная используется в следующем примере.

public:
// Variable to access the edit control.
CEdit m_cedit;

В следующем примере кода отображается подсказка воздушных шаров для элемента управления редактирования. Метод CEdit::ShowBalloonTip указывает текст заголовка и подсказки воздушных шаров.

m_cedit.ShowBalloonTip(
    _T("CEdit Balloon Tip"), // title
    _T("Here's a tip!"),     // text
    TTI_INFO);

CEdit::Undo

Вызовите эту функцию, чтобы отменить последнюю операцию управления изменениями.

BOOL Undo();

Возвращаемое значение

Для элемента управления редактирования в одной строке возвращаемое значение всегда ненулевое. Для элемента управления редактирования с несколькими строками возвращаемое значение ненулевое, если операция отмены выполнена успешно или 0, если операция отмены завершается ошибкой.

Замечания

Кроме того, можно отменить операцию отмены. Например, можно восстановить удаленный текст с помощью первого вызова Undo. Пока не существует промежуточных операций редактирования, вы можете снова удалить текст с помощью второго вызова Undo.

Дополнительные сведения см. в EM_UNDO пакета SDK для Windows.

Пример

// Undo the last operation, if possible.
if (m_myEdit.CanUndo())
   m_myEdit.Undo();

См. также

Пример CALCDRIV MFC
Пример CMNCTRL2 MFC
Класс CWnd
Диаграмма иерархии
Класс CWnd
Класс CButton
Класс CComboBox
Класс CListBox
Класс CScrollBar
Класс CStatic
Класс CDialog