Класс 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
разделе "Элементы управления".
Иерархия наследования
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 больше индекса последнего символа в этом объекте, возвращаемое значение указывает координаты позиции символа только после последнего символа в этом CEdit
CEdit
объекте.
Примечание.
Эта функция-член доступна начиная с 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] Указатель на структуру EDITBALLOONTIP , описывающую подсказку воздушных шаров.
lpszTitle
[in] Указатель на строку Юникода, содержащую заголовок подсказки воздушных шаров.
lpszText
[in] Указатель на строку Юникода, содержащую текст подсказки воздушных шаров.
ttiIcon
[in] InT, указывающий тип значка для связывания с подсказкой воздушных шаров. Значение по умолчанию — TTI_NONE. Дополнительные сведения см. в ttiIcon
элементе структуры EDITBALLOONTIP .
Возвращаемое значение
ЗНАЧЕНИЕ 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